merge with ns-3-dev
authorJosh Pelkey <jpelkey@gatech.edu>
Tue, 08 Feb 2011 13:08:45 -0500
changeset 6858 d2fa168c8b35
parent 6857 36929d9236ad (current diff)
parent 6853 dcfff807764a (diff)
child 6859 a3140070b40a
merge with ns-3-dev
examples/spectrum/adhoc-aloha-ideal-phy-with-microwave-oven.cc
examples/spectrum/adhoc-aloha-ideal-phy.cc
examples/spectrum/waf
examples/spectrum/wscript
src/common/cost231-propagation-loss-model.cc
src/common/cost231-propagation-loss-model.h
src/common/friis-spectrum-propagation-loss.cc
src/common/friis-spectrum-propagation-loss.h
src/common/jakes-propagation-loss-model.cc
src/common/jakes-propagation-loss-model.h
src/common/propagation-delay-model.cc
src/common/propagation-delay-model.h
src/common/propagation-loss-model-test-suite.cc
src/common/propagation-loss-model.cc
src/common/propagation-loss-model.h
src/common/spectrum-converter.cc
src/common/spectrum-converter.h
src/common/spectrum-model.cc
src/common/spectrum-model.h
src/common/spectrum-propagation-loss-model.cc
src/common/spectrum-propagation-loss-model.h
src/common/spectrum-type.cc
src/common/spectrum-type.h
src/common/spectrum-value-test.cc
src/common/spectrum-value.cc
src/common/spectrum-value.h
src/devices/spectrum/aloha-noack-mac-header.cc
src/devices/spectrum/aloha-noack-mac-header.h
src/devices/spectrum/aloha-noack-net-device.cc
src/devices/spectrum/aloha-noack-net-device.h
src/devices/spectrum/half-duplex-ideal-phy.cc
src/devices/spectrum/half-duplex-ideal-phy.h
src/devices/spectrum/microwave-oven-spectrum-value-helper.cc
src/devices/spectrum/microwave-oven-spectrum-value-helper.h
src/devices/spectrum/multi-model-spectrum-channel.cc
src/devices/spectrum/multi-model-spectrum-channel.h
src/devices/spectrum/non-communicating-net-device.cc
src/devices/spectrum/non-communicating-net-device.h
src/devices/spectrum/single-model-spectrum-channel.cc
src/devices/spectrum/single-model-spectrum-channel.h
src/devices/spectrum/spectrum-analyzer.cc
src/devices/spectrum/spectrum-analyzer.h
src/devices/spectrum/spectrum-error-model.cc
src/devices/spectrum/spectrum-error-model.h
src/devices/spectrum/spectrum-interference-test.cc
src/devices/spectrum/spectrum-interference.cc
src/devices/spectrum/spectrum-interference.h
src/devices/spectrum/spectrum-model-300kHz-300GHz-log.cc
src/devices/spectrum/spectrum-model-300kHz-300GHz-log.h
src/devices/spectrum/spectrum-model-ism2400MHz-res1MHz.cc
src/devices/spectrum/spectrum-model-ism2400MHz-res1MHz.h
src/devices/spectrum/waveform-generator.cc
src/devices/spectrum/waveform-generator.h
src/devices/spectrum/wifi-spectrum-value-helper.cc
src/devices/spectrum/wifi-spectrum-value-helper.h
src/devices/spectrum/wscript
src/helper/adhoc-aloha-noack-ideal-phy-helper.cc
src/helper/adhoc-aloha-noack-ideal-phy-helper.h
src/helper/spectrum-analyzer-helper.cc
src/helper/spectrum-analyzer-helper.h
src/helper/spectrum-helper.cc
src/helper/spectrum-helper.h
src/helper/waveform-generator-helper.cc
src/helper/waveform-generator-helper.h
src/node/ipv4-packet-info-tag.cc
src/node/ipv4-packet-info-tag.h
src/node/ipv6-packet-info-tag.cc
src/node/ipv6-packet-info-tag.h
src/node/spectrum-channel.cc
src/node/spectrum-channel.h
src/node/spectrum-phy.cc
src/node/spectrum-phy.h
--- a/RELEASE_NOTES	Tue Feb 01 14:31:54 2011 -0500
+++ b/RELEASE_NOTES	Tue Feb 08 13:08:45 2011 -0500
@@ -9,12 +9,39 @@
 Consult the file CHANGES.html for more detailed information about changed
 API and behavior across ns-3 releases.
 
+Release 3.11
+===========
+
+Availability
+------------
+This release is not yet available.
+
+Supported platforms
+-------------------
+
+New user-visible features
+-------------------------
+
+Bugs fixed
+----------
+The following lists many of the bugs fixed or small feature additions
+since ns-3.10, in many cases referencing the Bugzilla bug number.
+
+   - Fixed the UanPhyGen::IsStateBusy method, error with logical OR
+   - CsmaNetDevice ReceiveErrorModel was not dropping the packet
+
+Known issues
+------------
+In general, known issues are tracked on the project tracker available
+at http://www.nsnam.org/bugzilla/
+
 Release 3.10
 ===========
 
 Availability
 ------------
-This release is not yet available.
+This release is available from: 
+http://www.nsnam.org/releases/ns-allinone-3.10.tar.bz2
 
 Supported platforms
 -------------------
--- a/bindings/python/apidefs/gcc-ILP32/callbacks_list.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/callbacks_list.py	Tue Feb 08 13:08:45 2011 -0500
@@ -1,6 +1,6 @@
 callback_classes = [
+    ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', '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', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::Address const&', 'ns3::Address const&', 'unsigned short', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_bridge.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_bridge.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,12 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## bridge-helper.h: ns3::BridgeHelper [class]
+    module.add_class('BridgeHelper')
+    ## bridge-channel.h: ns3::BridgeChannel [class]
+    module.add_class('BridgeChannel', parent=root_module['ns3::Channel'])
+    ## bridge-net-device.h: ns3::BridgeNetDevice [class]
+    module.add_class('BridgeNetDevice', parent=root_module['ns3::NetDevice'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +101,230 @@
     
 
 def register_methods(root_module):
+    register_Ns3BridgeHelper_methods(root_module, root_module['ns3::BridgeHelper'])
+    register_Ns3BridgeChannel_methods(root_module, root_module['ns3::BridgeChannel'])
+    register_Ns3BridgeNetDevice_methods(root_module, root_module['ns3::BridgeNetDevice'])
+    return
+
+def register_Ns3BridgeHelper_methods(root_module, cls):
+    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper(ns3::BridgeHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeHelper const &', 'arg0')])
+    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper() [constructor]
+    cls.add_constructor([])
+    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(ns3::Ptr<ns3::Node> node, ns3::NetDeviceContainer c) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::NetDeviceContainer', 'c')])
+    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(std::string nodeName, ns3::NetDeviceContainer c) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName'), param('ns3::NetDeviceContainer', 'c')])
+    ## bridge-helper.h: void ns3::BridgeHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    return
+
+def register_Ns3BridgeChannel_methods(root_module, cls):
+    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel(ns3::BridgeChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeChannel const &', 'arg0')])
+    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel() [constructor]
+    cls.add_constructor([])
+    ## bridge-channel.h: void ns3::BridgeChannel::AddChannel(ns3::Ptr<ns3::Channel> bridgedChannel) [member function]
+    cls.add_method('AddChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Channel >', 'bridgedChannel')])
+    ## bridge-channel.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeChannel::GetDevice(uint32_t i) const [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-channel.h: uint32_t ns3::BridgeChannel::GetNDevices() const [member function]
+    cls.add_method('GetNDevices', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-channel.h: static ns3::TypeId ns3::BridgeChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3BridgeNetDevice_methods(root_module, cls):
+    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice(ns3::BridgeNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeNetDevice const &', 'arg0')])
+    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice() [constructor]
+    cls.add_constructor([])
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddBridgePort(ns3::Ptr<ns3::NetDevice> bridgePort) [member function]
+    cls.add_method('AddBridgePort', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'bridgePort')])
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetBridgePort(uint32_t n) const [member function]
+    cls.add_method('GetBridgePort', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::Channel> ns3::BridgeNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint16_t ns3::BridgeNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetNBridgePorts() const [member function]
+    cls.add_method('GetNBridgePorts', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::Node> ns3::BridgeNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: static ns3::TypeId ns3::BridgeNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardBroadcast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
+    cls.add_method('ForwardBroadcast', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardUnicast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
+    cls.add_method('ForwardUnicast', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
+                   visibility='protected')
+    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetLearnedState(ns3::Mac48Address source) [member function]
+    cls.add_method('GetLearnedState', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('ns3::Mac48Address', 'source')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::Learn(ns3::Mac48Address source, ns3::Ptr<ns3::NetDevice> port) [member function]
+    cls.add_method('Learn', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'source'), param('ns3::Ptr< ns3::NetDevice >', 'port')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ReceiveFromDevice(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('ReceiveFromDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')], 
+                   visibility='protected')
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_common.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_common.py	Tue Feb 08 13:08:45 2011 -0500
@@ -5,8 +5,6 @@
     
     ## error-model.h: ns3::ErrorUnit [enumeration]
     module.add_enum('ErrorUnit', ['EU_BIT', 'EU_BYTE', 'EU_PKT'])
-    ## spectrum-model.h: ns3::BandInfo [struct]
-    module.add_class('BandInfo')
     ## buffer.h: ns3::Buffer [class]
     module.add_class('Buffer')
     ## buffer.h: ns3::Buffer::Iterator [class]
@@ -43,10 +41,6 @@
     module.add_class('PcapFile')
     ## sequence-number.h: ns3::SequenceNumber<unsigned int, int> [class]
     module.add_class('SequenceNumber32')
-    ## spectrum-type.h: ns3::SpectrumType [class]
-    module.add_class('SpectrumType')
-    ## spectrum-type.h: ns3::SpectrumTypeFactory [class]
-    module.add_class('SpectrumTypeFactory')
     ## tag.h: ns3::Tag [class]
     module.add_class('Tag', parent=root_module['ns3::ObjectBase'])
     ## tag-buffer.h: ns3::TagBuffer [class]
@@ -59,70 +53,22 @@
     module.add_class('PacketBurst', parent=root_module['ns3::Object'])
     ## pcap-file-wrapper.h: ns3::PcapFileWrapper [class]
     module.add_class('PcapFileWrapper', parent=root_module['ns3::Object'])
-    ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
-    module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
-    ## propagation-loss-model.h: ns3::PropagationLossModel [class]
-    module.add_class('PropagationLossModel', parent=root_module['ns3::Object'])
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
-    module.add_class('RandomPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
-    ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
-    module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::RangePropagationLossModel [class]
-    module.add_class('RangePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter<ns3::NixVector>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::OutputStreamWrapper', 'ns3::empty', 'ns3::DefaultDeleter<ns3::OutputStreamWrapper>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Packet>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumConverter', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumConverter>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumModel', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumModel>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## spectrum-converter.h: ns3::SpectrumConverter [class]
-    module.add_class('SpectrumConverter', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> >'])
-    ## spectrum-model.h: ns3::SpectrumModel [class]
-    module.add_class('SpectrumModel', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> >'])
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel [class]
-    module.add_class('SpectrumPropagationLossModel', parent=root_module['ns3::Object'])
-    ## spectrum-value.h: ns3::SpectrumValue [class]
-    module.add_class('SpectrumValue', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> >'])
-    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel [class]
-    module.add_class('ThreeLogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## trailer.h: ns3::Trailer [class]
     module.add_class('Trailer', parent=root_module['ns3::Chunk'])
-    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel [class]
-    module.add_class('TwoRayGroundPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
-    module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel [class]
-    module.add_class('Cost231PropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment [enumeration]
-    module.add_enum('Environment', ['SubUrban', 'MediumCity', 'Metropolitan'], outer_class=root_module['ns3::Cost231PropagationLossModel'])
     ## data-rate.h: ns3::DataRateChecker [class]
     module.add_class('DataRateChecker', parent=root_module['ns3::AttributeChecker'])
     ## data-rate.h: ns3::DataRateValue [class]
     module.add_class('DataRateValue', parent=root_module['ns3::AttributeValue'])
     ## error-model.h: ns3::ErrorModel [class]
     module.add_class('ErrorModel', parent=root_module['ns3::Object'])
-    ## propagation-loss-model.h: ns3::FixedRssLossModel [class]
-    module.add_class('FixedRssLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
-    module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel [class]
-    module.add_class('FriisSpectrumPropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
-    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
-    module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## error-model.h: ns3::ListErrorModel [class]
     module.add_class('ListErrorModel', parent=root_module['ns3::ErrorModel'])
-    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel [class]
-    module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel [class]
-    module.add_class('MatrixPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel [class]
-    module.add_class('NakagamiPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## nix-vector.h: ns3::NixVector [class]
     module.add_class('NixVector', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >'])
     ## output-stream-wrapper.h: ns3::OutputStreamWrapper [class]
@@ -133,23 +79,12 @@
     module.add_class('RateErrorModel', parent=root_module['ns3::ErrorModel'])
     ## error-model.h: ns3::ReceiveListErrorModel [class]
     module.add_class('ReceiveListErrorModel', parent=root_module['ns3::ErrorModel'])
-    module.add_container('ns3::SpectrumConverterMap_t', ('unsigned int', 'ns3::SpectrumConverter'), container_type='map')
-    module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >', 'ns3::SequenceNumber16')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >*', 'ns3::SequenceNumber16*')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >&', 'ns3::SequenceNumber16&')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >', 'ns3::SequenceNumber32')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >*', 'ns3::SequenceNumber32*')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >&', 'ns3::SequenceNumber32&')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', 'ns3::Bands')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', 'ns3::Bands*')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', 'ns3::Bands&')
     
     ## Register a nested module for the namespace Config
     
@@ -242,7 +177,6 @@
     
 
 def register_methods(root_module):
-    register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo'])
     register_Ns3Buffer_methods(root_module, root_module['ns3::Buffer'])
     register_Ns3BufferIterator_methods(root_module, root_module['ns3::Buffer::Iterator'])
     register_Ns3ByteTagIterator_methods(root_module, root_module['ns3::ByteTagIterator'])
@@ -260,39 +194,17 @@
     register_Ns3PacketTagListTagData_methods(root_module, root_module['ns3::PacketTagList::TagData'])
     register_Ns3PcapFile_methods(root_module, root_module['ns3::PcapFile'])
     register_Ns3SequenceNumber32_methods(root_module, root_module['ns3::SequenceNumber32'])
-    register_Ns3SpectrumType_methods(root_module, root_module['ns3::SpectrumType'])
-    register_Ns3SpectrumTypeFactory_methods(root_module, root_module['ns3::SpectrumTypeFactory'])
     register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
     register_Ns3Chunk_methods(root_module, root_module['ns3::Chunk'])
     register_Ns3Header_methods(root_module, root_module['ns3::Header'])
     register_Ns3PacketBurst_methods(root_module, root_module['ns3::PacketBurst'])
     register_Ns3PcapFileWrapper_methods(root_module, root_module['ns3::PcapFileWrapper'])
-    register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel'])
-    register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel'])
-    register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel'])
-    register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel'])
-    register_Ns3RangePropagationLossModel_methods(root_module, root_module['ns3::RangePropagationLossModel'])
-    register_Ns3SpectrumConverter_methods(root_module, root_module['ns3::SpectrumConverter'])
-    register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel'])
-    register_Ns3SpectrumPropagationLossModel_methods(root_module, root_module['ns3::SpectrumPropagationLossModel'])
-    register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue'])
-    register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel'])
     register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer'])
-    register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel'])
-    register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel'])
-    register_Ns3Cost231PropagationLossModel_methods(root_module, root_module['ns3::Cost231PropagationLossModel'])
     register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker'])
     register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue'])
     register_Ns3ErrorModel_methods(root_module, root_module['ns3::ErrorModel'])
-    register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
-    register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
-    register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, root_module['ns3::FriisSpectrumPropagationLossModel'])
-    register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
     register_Ns3ListErrorModel_methods(root_module, root_module['ns3::ListErrorModel'])
-    register_Ns3LogDistancePropagationLossModel_methods(root_module, root_module['ns3::LogDistancePropagationLossModel'])
-    register_Ns3MatrixPropagationLossModel_methods(root_module, root_module['ns3::MatrixPropagationLossModel'])
-    register_Ns3NakagamiPropagationLossModel_methods(root_module, root_module['ns3::NakagamiPropagationLossModel'])
     register_Ns3NixVector_methods(root_module, root_module['ns3::NixVector'])
     register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
@@ -300,19 +212,6 @@
     register_Ns3ReceiveListErrorModel_methods(root_module, root_module['ns3::ReceiveListErrorModel'])
     return
 
-def register_Ns3BandInfo_methods(root_module, cls):
-    ## spectrum-model.h: ns3::BandInfo::BandInfo() [constructor]
-    cls.add_constructor([])
-    ## spectrum-model.h: ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BandInfo const &', 'arg0')])
-    ## spectrum-model.h: ns3::BandInfo::fc [variable]
-    cls.add_instance_attribute('fc', 'double', is_const=False)
-    ## spectrum-model.h: ns3::BandInfo::fh [variable]
-    cls.add_instance_attribute('fh', 'double', is_const=False)
-    ## spectrum-model.h: ns3::BandInfo::fl [variable]
-    cls.add_instance_attribute('fl', 'double', is_const=False)
-    return
-
 def register_Ns3Buffer_methods(root_module, cls):
     ## buffer.h: ns3::Buffer::Buffer() [constructor]
     cls.add_constructor([])
@@ -990,41 +889,6 @@
                    is_const=True)
     return
 
-def register_Ns3SpectrumType_methods(root_module, cls):
-    cls.add_binary_comparison_operator('!=')
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## spectrum-type.h: ns3::SpectrumType::SpectrumType(ns3::SpectrumType const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumType const &', 'arg0')])
-    ## spectrum-type.h: std::string ns3::SpectrumType::GetName() const [member function]
-    cls.add_method('GetName', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## spectrum-type.h: uint32_t ns3::SpectrumType::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumTypeFactory_methods(root_module, cls):
-    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory() [constructor]
-    cls.add_constructor([])
-    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory(ns3::SpectrumTypeFactory const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumTypeFactory const &', 'arg0')])
-    ## spectrum-type.h: static ns3::SpectrumType ns3::SpectrumTypeFactory::Create(std::string name) [member function]
-    cls.add_method('Create', 
-                   'ns3::SpectrumType', 
-                   [param('std::string', 'name')], 
-                   is_static=True)
-    ## spectrum-type.h: static std::string ns3::SpectrumTypeFactory::GetNameByUid(uint32_t uid) [member function]
-    cls.add_method('GetNameByUid', 
-                   'std::string', 
-                   [param('uint32_t', 'uid')], 
-                   is_static=True)
-    return
-
 def register_Ns3Tag_methods(root_module, cls):
     ## tag.h: ns3::Tag::Tag() [constructor]
     cls.add_constructor([])
@@ -1302,254 +1166,6 @@
                    [])
     return
 
-def register_Ns3PropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel(ns3::PropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::Time ns3::PropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::PropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3PropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::PropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::PropagationLossModel::PropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::PropagationLossModel::SetNext(ns3::Ptr<ns3::PropagationLossModel> next) [member function]
-    cls.add_method('SetNext', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PropagationLossModel >', 'next')])
-    ## propagation-loss-model.h: double ns3::PropagationLossModel::CalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('CalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RandomPropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel(ns3::RandomPropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RandomPropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::Time ns3::RandomPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::RandomPropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3RandomPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::RandomPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::RandomPropagationLossModel::RandomPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::RandomPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RangePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::RangePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::RangePropagationLossModel::RangePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::RangePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3SpectrumConverter_methods(root_module, cls):
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::SpectrumConverter const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumConverter const &', 'arg0')])
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::Ptr<ns3::SpectrumModel const> fromSpectrumModel, ns3::Ptr<ns3::SpectrumModel const> toSpectrumModel) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'fromSpectrumModel'), param('ns3::Ptr< ns3::SpectrumModel const >', 'toSpectrumModel')])
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter() [constructor]
-    cls.add_constructor([])
-    ## spectrum-converter.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumConverter::Convert(ns3::Ptr<ns3::SpectrumValue const> vvf) const [member function]
-    cls.add_method('Convert', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'vvf')], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumModel_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')])
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(std::vector<double, std::allocator<double> > centerFreqs) [constructor]
-    cls.add_constructor([param('std::vector< double >', 'centerFreqs')])
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor]
-    cls.add_constructor([param('ns3::Bands', 'bands')])
-    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: size_t ns3::SpectrumModel::GetNumBands() const [member function]
-    cls.add_method('GetNumBands', 
-                   'size_t', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'ns3::SpectrumModelUid_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumPropagationLossModel_methods(root_module, cls):
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel(ns3::SpectrumPropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPropagationLossModel const &', 'arg0')])
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::CalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('CalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True)
-    ## spectrum-propagation-loss-model.h: static ns3::TypeId ns3::SpectrumPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::SetNext(ns3::Ptr<ns3::SpectrumPropagationLossModel> next) [member function]
-    cls.add_method('SetNext', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'next')])
-    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3SpectrumValue_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_unary_numeric_operator('-')
-    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('*=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('double', 'right'))
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')])
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::Ptr<ns3::SpectrumModel const> sm) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')])
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue() [constructor]
-    cls.add_constructor([])
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsBegin() const [member function]
-    cls.add_method('ConstBandsBegin', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsEnd() const [member function]
-    cls.add_method('ConstBandsEnd', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesBegin() const [member function]
-    cls.add_method('ConstValuesBegin', 
-                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesEnd() const [member function]
-    cls.add_method('ConstValuesEnd', 
-                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumValue::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumValue::GetSpectrumModel() const [member function]
-    cls.add_method('GetSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function]
-    cls.add_method('GetSpectrumModelUid', 
-                   'ns3::SpectrumModelUid_t', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesBegin() [member function]
-    cls.add_method('ValuesBegin', 
-                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
-                   [])
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesEnd() [member function]
-    cls.add_method('ValuesEnd', 
-                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
-                   [])
-    return
-
-def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::ThreeLogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3Trailer_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## trailer.h: ns3::Trailer::Trailer() [constructor]
@@ -1583,159 +1199,6 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
-def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::TwoRayGroundPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
-    cls.add_method('SetSystemLoss', 
-                   'void', 
-                   [param('double', 'systemLoss')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetSystemLoss() const [member function]
-    cls.add_method('GetSystemLoss', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ(double heightAboveZ) [member function]
-    cls.add_method('SetHeightAboveZ', 
-                   'void', 
-                   [param('double', 'heightAboveZ')])
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
-    cls.add_method('GetSpeed', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
-    cls.add_method('SetSpeed', 
-                   'void', 
-                   [param('double', 'speed')])
-    return
-
-def register_Ns3Cost231PropagationLossModel_methods(root_module, cls):
-    ## cost231-propagation-loss-model.h: static ns3::TypeId ns3::Cost231PropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Cost231PropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetLoss', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetBSAntennaHeight(double height) [member function]
-    cls.add_method('SetBSAntennaHeight', 
-                   'void', 
-                   [param('double', 'height')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetSSAntennaHeight(double height) [member function]
-    cls.add_method('SetSSAntennaHeight', 
-                   'void', 
-                   [param('double', 'height')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetEnvironment(ns3::Cost231PropagationLossModel::Environment env) [member function]
-    cls.add_method('SetEnvironment', 
-                   'void', 
-                   [param('ns3::Cost231PropagationLossModel::Environment', 'env')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetBSAntennaHeight() const [member function]
-    cls.add_method('GetBSAntennaHeight', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetSSAntennaHeight() const [member function]
-    cls.add_method('GetSSAntennaHeight', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment ns3::Cost231PropagationLossModel::GetEnvironment() const [member function]
-    cls.add_method('GetEnvironment', 
-                   'ns3::Cost231PropagationLossModel::Environment', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetShadowing() [member function]
-    cls.add_method('GetShadowing', 
-                   'double', 
-                   [])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetShadowing(double shadowing) [member function]
-    cls.add_method('SetShadowing', 
-                   'void', 
-                   [param('double', 'shadowing')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3DataRateChecker_methods(root_module, cls):
     ## data-rate.h: ns3::DataRateChecker::DataRateChecker() [constructor]
     cls.add_constructor([])
@@ -1819,126 +1282,6 @@
                    is_pure_virtual=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3FixedRssLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::FixedRssLossModel::FixedRssLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::FixedRssLossModel::SetRss(double rss) [member function]
-    cls.add_method('SetRss', 
-                   'void', 
-                   [param('double', 'rss')])
-    ## propagation-loss-model.h: double ns3::FixedRssLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::FriisPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::FriisPropagationLossModel::FriisPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
-    cls.add_method('SetSystemLoss', 
-                   'void', 
-                   [param('double', 'systemLoss')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetSystemLoss() const [member function]
-    cls.add_method('GetSystemLoss', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, cls):
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel(ns3::FriisSpectrumPropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FriisSpectrumPropagationLossModel const &', 'arg0')])
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## friis-spectrum-propagation-loss.h: double ns3::FriisSpectrumPropagationLossModel::CalculateLoss(double f, double d) const [member function]
-    cls.add_method('CalculateLoss', 
-                   'double', 
-                   [param('double', 'f'), param('double', 'd')], 
-                   is_const=True)
-    ## friis-spectrum-propagation-loss.h: ns3::Ptr<ns3::SpectrumValue> ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## friis-spectrum-propagation-loss.h: static ns3::TypeId ns3::FriisSpectrumPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3JakesPropagationLossModel_methods(root_module, cls):
-    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel::JakesPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNOscillators() const [member function]
-    cls.add_method('GetNOscillators', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNRays() const [member function]
-    cls.add_method('GetNRays', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## jakes-propagation-loss-model.h: static ns3::TypeId ns3::JakesPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNOscillators(uint8_t nOscillators) [member function]
-    cls.add_method('SetNOscillators', 
-                   'void', 
-                   [param('uint8_t', 'nOscillators')])
-    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNRays(uint8_t nRays) [member function]
-    cls.add_method('SetNRays', 
-                   'void', 
-                   [param('uint8_t', 'nRays')])
-    ## jakes-propagation-loss-model.h: double ns3::JakesPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3ListErrorModel_methods(root_module, cls):
     ## error-model.h: ns3::ListErrorModel::ListErrorModel(ns3::ListErrorModel const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ListErrorModel const &', 'arg0')])
@@ -1970,72 +1313,6 @@
                    visibility='private', is_virtual=True)
     return
 
-def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::LogDistancePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetPathLossExponent(double n) [member function]
-    cls.add_method('SetPathLossExponent', 
-                   'void', 
-                   [param('double', 'n')])
-    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::GetPathLossExponent() const [member function]
-    cls.add_method('GetPathLossExponent', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetReference(double referenceDistance, double referenceLoss) [member function]
-    cls.add_method('SetReference', 
-                   'void', 
-                   [param('double', 'referenceDistance'), param('double', 'referenceLoss')])
-    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3MatrixPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::MatrixPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel::MatrixPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetLoss(ns3::Ptr<ns3::Node> a, ns3::Ptr<ns3::Node> b, double loss, bool symmetric=true) [member function]
-    cls.add_method('SetLoss', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'a'), param('ns3::Ptr< ns3::Node >', 'b'), param('double', 'loss'), param('bool', 'symmetric', default_value='true')])
-    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetDefaultLoss(double arg0) [member function]
-    cls.add_method('SetDefaultLoss', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## propagation-loss-model.h: double ns3::MatrixPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3NakagamiPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::NakagamiPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::NakagamiPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3NixVector_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## nix-vector.h: ns3::NixVector::NixVector() [constructor]
@@ -2366,42 +1643,10 @@
 
 def register_functions(root_module):
     module = root_module
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log10(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log10', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log2(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log2', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
     ## data-rate.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeDataRateChecker() [free function]
     module.add_function('MakeDataRateChecker', 
                         'ns3::Ptr< ns3::AttributeChecker const >', 
                         [])
-    ## spectrum-value.h: extern double ns3::Norm(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Norm', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(ns3::SpectrumValue const & base, double exp) [free function]
-    module.add_function('Pow', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'base'), param('double', 'exp')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(double base, ns3::SpectrumValue const & exp) [free function]
-    module.add_function('Pow', 
-                        'ns3::SpectrumValue', 
-                        [param('double', 'base'), param('ns3::SpectrumValue const &', 'exp')])
-    ## spectrum-value.h: extern double ns3::Prod(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Prod', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
-    ## spectrum-value.h: extern double ns3::Sum(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Sum', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_core.py	Tue Feb 08 13:08:45 2011 -0500
@@ -133,12 +133,6 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::AttributeValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::CallbackImplBase, ns3::empty, ns3::DefaultDeleter<ns3::CallbackImplBase> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CallbackImplBase>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowClassifier>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowProbe', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowProbe>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::IdealControlMessage', 'ns3::empty', 'ns3::DefaultDeleter<ns3::IdealControlMessage>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::RefCountBase, ns3::empty, ns3::DefaultDeleter<ns3::RefCountBase> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::RefCountBase', 'ns3::empty', 'ns3::DefaultDeleter<ns3::RefCountBase>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SystemThread, ns3::empty, ns3::DefaultDeleter<ns3::SystemThread> > [class]
@@ -3252,7 +3246,7 @@
     module.add_function('TypeNameGet', 
                         'std::string', 
                         [], 
-                        template_parameters=['long long'])
+                        template_parameters=['long'])
     ## type-name.h: extern std::string ns3::TypeNameGet() [free function]
     module.add_function('TypeNameGet', 
                         'std::string', 
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_dot11s.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_dot11s.py	Tue Feb 08 13:08:45 2011 -0500
@@ -81,8 +81,6 @@
     
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sCongestionControlMode [enumeration]
     module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
-    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
     module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionProtocol [enumeration]
@@ -91,6 +89,8 @@
     module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
     ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
     module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
+    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-configuration.h: ns3::dot11s::Dot11sMeshCapability [class]
     module.add_class('Dot11sMeshCapability')
     ## hwmp-protocol.h: ns3::dot11s::HwmpProtocol [class]
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_dsdv.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_dsdv.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## dsdv-helper.h: ns3::DsdvHelper [class]
+    module.add_class('DsdvHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
     
     ## Register a nested module for the namespace Config
     
@@ -81,6 +83,21 @@
 def register_types_ns3_dsdv(module):
     root_module = module.get_root()
     
+    ## dsdv-rtable.h: ns3::dsdv::RouteFlags [enumeration]
+    module.add_enum('RouteFlags', ['VALID', 'INVALID'])
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader [class]
+    module.add_class('DsdvHeader', parent=root_module['ns3::Header'])
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue [class]
+    module.add_class('PacketQueue')
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry [class]
+    module.add_class('QueueEntry')
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol [class]
+    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable [class]
+    module.add_class('RoutingTable')
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry [class]
+    module.add_class('RoutingTableEntry')
+    module.add_container('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry >', ('ns3::Ipv4Address', 'ns3::dsdv::RoutingTableEntry'), container_type='map')
 
 def register_types_ns3_flame(module):
     root_module = module.get_root()
@@ -95,6 +112,488 @@
     
 
 def register_methods(root_module):
+    register_Ns3DsdvHelper_methods(root_module, root_module['ns3::DsdvHelper'])
+    register_Ns3DsdvDsdvHeader_methods(root_module, root_module['ns3::dsdv::DsdvHeader'])
+    register_Ns3DsdvPacketQueue_methods(root_module, root_module['ns3::dsdv::PacketQueue'])
+    register_Ns3DsdvQueueEntry_methods(root_module, root_module['ns3::dsdv::QueueEntry'])
+    register_Ns3DsdvRoutingProtocol_methods(root_module, root_module['ns3::dsdv::RoutingProtocol'])
+    register_Ns3DsdvRoutingTable_methods(root_module, root_module['ns3::dsdv::RoutingTable'])
+    register_Ns3DsdvRoutingTableEntry_methods(root_module, root_module['ns3::dsdv::RoutingTableEntry'])
+    return
+
+def register_Ns3DsdvHelper_methods(root_module, cls):
+    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper(ns3::DsdvHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DsdvHelper const &', 'arg0')])
+    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper() [constructor]
+    cls.add_constructor([])
+    ## dsdv-helper.h: ns3::DsdvHelper * ns3::DsdvHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::DsdvHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::DsdvHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-helper.h: void ns3::DsdvHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+    return
+
+def register_Ns3DsdvDsdvHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::dsdv::DsdvHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::DsdvHeader const &', 'arg0')])
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::Ipv4Address dst=ns3::Ipv4Address(), uint32_t hopcount=0, uint32_t dstSeqNo=0) [constructor]
+    cls.add_constructor([param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('uint32_t', 'hopcount', default_value='0'), param('uint32_t', 'dstSeqNo', default_value='0')])
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## dsdv-packet.h: ns3::Ipv4Address ns3::dsdv::DsdvHeader::GetDst() const [member function]
+    cls.add_method('GetDst', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetDstSeqno() const [member function]
+    cls.add_method('GetDstSeqno', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetHopCount() const [member function]
+    cls.add_method('GetHopCount', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: ns3::TypeId ns3::dsdv::DsdvHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: static ns3::TypeId ns3::dsdv::DsdvHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDst(ns3::Ipv4Address destination) [member function]
+    cls.add_method('SetDst', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'destination')])
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDstSeqno(uint32_t sequenceNumber) [member function]
+    cls.add_method('SetDstSeqno', 
+                   'void', 
+                   [param('uint32_t', 'sequenceNumber')])
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetHopCount(uint32_t hopCount) [member function]
+    cls.add_method('SetHopCount', 
+                   'void', 
+                   [param('uint32_t', 'hopCount')])
+    return
+
+def register_Ns3DsdvPacketQueue_methods(root_module, cls):
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue(ns3::dsdv::PacketQueue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::PacketQueue const &', 'arg0')])
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue() [constructor]
+    cls.add_constructor([])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Dequeue(ns3::Ipv4Address dst, ns3::dsdv::QueueEntry & entry) [member function]
+    cls.add_method('Dequeue', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::QueueEntry &', 'entry')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::DropPacketWithDst(ns3::Ipv4Address dst) [member function]
+    cls.add_method('DropPacketWithDst', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Enqueue(ns3::dsdv::QueueEntry & entry) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::dsdv::QueueEntry &', 'entry')])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Find(ns3::Ipv4Address dst) [member function]
+    cls.add_method('Find', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetCountForPacketsWithDst(ns3::Ipv4Address dst) [member function]
+    cls.add_method('GetCountForPacketsWithDst', 
+                   'uint32_t', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxPacketsPerDst() const [member function]
+    cls.add_method('GetMaxPacketsPerDst', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxQueueLen() const [member function]
+    cls.add_method('GetMaxQueueLen', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::PacketQueue::GetQueueTimeout() const [member function]
+    cls.add_method('GetQueueTimeout', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetSize() [member function]
+    cls.add_method('GetSize', 
+                   'uint32_t', 
+                   [])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxPacketsPerDst(uint32_t len) [member function]
+    cls.add_method('SetMaxPacketsPerDst', 
+                   'void', 
+                   [param('uint32_t', 'len')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxQueueLen(uint32_t len) [member function]
+    cls.add_method('SetMaxQueueLen', 
+                   'void', 
+                   [param('uint32_t', 'len')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetQueueTimeout(ns3::Time t) [member function]
+    cls.add_method('SetQueueTimeout', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    return
+
+def register_Ns3DsdvQueueEntry_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::dsdv::QueueEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::QueueEntry const &', 'arg0')])
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::Ptr<ns3::Packet const> pa=0, ns3::Ipv4Header const & h=ns3::Ipv4Header(), ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb=ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>(), ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb=ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Packet const >', 'pa', default_value='0'), param('ns3::Ipv4Header const &', 'h', default_value='ns3::Ipv4Header()'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb', default_value='ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb', default_value='ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()')])
+    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetErrorCallback() const [member function]
+    cls.add_method('GetErrorCallback', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::QueueEntry::GetExpireTime() const [member function]
+    cls.add_method('GetExpireTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Ipv4Header ns3::dsdv::QueueEntry::GetIpv4Header() const [member function]
+    cls.add_method('GetIpv4Header', 
+                   'ns3::Ipv4Header', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Ptr<ns3::Packet const> ns3::dsdv::QueueEntry::GetPacket() const [member function]
+    cls.add_method('GetPacket', 
+                   'ns3::Ptr< ns3::Packet const >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetUnicastForwardCallback() const [member function]
+    cls.add_method('GetUnicastForwardCallback', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('SetErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetExpireTime(ns3::Time exp) [member function]
+    cls.add_method('SetExpireTime', 
+                   'void', 
+                   [param('ns3::Time', 'exp')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetIpv4Header(ns3::Ipv4Header h) [member function]
+    cls.add_method('SetIpv4Header', 
+                   'void', 
+                   [param('ns3::Ipv4Header', 'h')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetPacket(ns3::Ptr<ns3::Packet const> p) [member function]
+    cls.add_method('SetPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetUnicastForwardCallback(ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb) [member function]
+    cls.add_method('SetUnicastForwardCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb')])
+    return
+
+def register_Ns3DsdvRoutingProtocol_methods(root_module, cls):
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol(ns3::dsdv::RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingProtocol const &', 'arg0')])
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableBufferFlag() const [member function]
+    cls.add_method('GetEnableBufferFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableRAFlag() const [member function]
+    cls.add_method('GetEnableRAFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: static ns3::TypeId ns3::dsdv::RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetWSTFlag() const [member function]
+    cls.add_method('GetWSTFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableBufferFlag(bool f) [member function]
+    cls.add_method('SetEnableBufferFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableRAFlag(bool f) [member function]
+    cls.add_method('SetEnableRAFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetWSTFlag(bool f) [member function]
+    cls.add_method('SetWSTFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::DSDV_PORT [variable]
+    cls.add_static_attribute('DSDV_PORT', 'uint32_t const', is_const=True)
+    return
+
+def register_Ns3DsdvRoutingTable_methods(root_module, cls):
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable(ns3::dsdv::RoutingTable const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingTable const &', 'arg0')])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable() [constructor]
+    cls.add_constructor([])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddIpv4Event(ns3::Ipv4Address arg0, ns3::EventId arg1) [member function]
+    cls.add_method('AddIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'arg0'), param('ns3::EventId', 'arg1')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddRoute(ns3::dsdv::RoutingTableEntry & r) [member function]
+    cls.add_method('AddRoute', 
+                   'bool', 
+                   [param('ns3::dsdv::RoutingTableEntry &', 'r')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AnyRunningEvent(ns3::Ipv4Address address) [member function]
+    cls.add_method('AnyRunningEvent', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::DeleteAllRoutesFromInterface(ns3::Ipv4InterfaceAddress iface) [member function]
+    cls.add_method('DeleteAllRoutesFromInterface', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteIpv4Event(ns3::Ipv4Address address) [member function]
+    cls.add_method('DeleteIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteRoute(ns3::Ipv4Address dst) [member function]
+    cls.add_method('DeleteRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::ForceDeleteIpv4Event(ns3::Ipv4Address address) [member function]
+    cls.add_method('ForceDeleteIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: ns3::EventId ns3::dsdv::RoutingTable::GetEventId(ns3::Ipv4Address address) [member function]
+    cls.add_method('GetEventId', 
+                   'ns3::EventId', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfAllRoutes(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & allRoutes) [member function]
+    cls.add_method('GetListOfAllRoutes', 
+                   'void', 
+                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'allRoutes')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfDestinationWithNextHop(ns3::Ipv4Address nxtHp, std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & dstList) [member function]
+    cls.add_method('GetListOfDestinationWithNextHop', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nxtHp'), param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'dstList')])
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTable::Getholddowntime() const [member function]
+    cls.add_method('Getholddowntime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address dst, ns3::dsdv::RoutingTableEntry & rt) [member function]
+    cls.add_method('LookupRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::RoutingTableEntry &', 'rt')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address id, ns3::dsdv::RoutingTableEntry & rt, bool forRouteInput) [member function]
+    cls.add_method('LookupRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'id'), param('ns3::dsdv::RoutingTableEntry &', 'rt'), param('bool', 'forRouteInput')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Purge(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & removedAddresses) [member function]
+    cls.add_method('Purge', 
+                   'void', 
+                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'removedAddresses')])
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTable::RoutingTableSize() [member function]
+    cls.add_method('RoutingTableSize', 
+                   'uint32_t', 
+                   [])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Setholddowntime(ns3::Time t) [member function]
+    cls.add_method('Setholddowntime', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::Update(ns3::dsdv::RoutingTableEntry & rt) [member function]
+    cls.add_method('Update', 
+                   'bool', 
+                   [param('ns3::dsdv::RoutingTableEntry &', 'rt')])
+    return
+
+def register_Ns3DsdvRoutingTableEntry_methods(root_module, cls):
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::dsdv::RoutingTableEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingTableEntry const &', 'arg0')])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::Ptr<ns3::NetDevice> dev=0, ns3::Ipv4Address dst=ns3::Ipv4Address(), u_int32_t m_seqNo=0, ns3::Ipv4InterfaceAddress iface=ns3::Ipv4InterfaceAddress(), u_int32_t hops=0, ns3::Ipv4Address nextHop=ns3::Ipv4Address(), ns3::Time lifetime=ns3::Simulator::Now( ), ns3::Time SettlingTime=ns3::Simulator::Now( ), bool changedEntries=false) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'dev', default_value='0'), param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('u_int32_t', 'm_seqNo', default_value='0'), param('ns3::Ipv4InterfaceAddress', 'iface', default_value='ns3::Ipv4InterfaceAddress()'), param('u_int32_t', 'hops', default_value='0'), param('ns3::Ipv4Address', 'nextHop', default_value='ns3::Ipv4Address()'), param('ns3::Time', 'lifetime', default_value='ns3::Simulator::Now( )'), param('ns3::Time', 'SettlingTime', default_value='ns3::Simulator::Now( )'), param('bool', 'changedEntries', default_value='false')])
+    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTableEntry::GetEntriesChanged() const [member function]
+    cls.add_method('GetEntriesChanged', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::dsdv::RouteFlags ns3::dsdv::RoutingTableEntry::GetFlag() const [member function]
+    cls.add_method('GetFlag', 
+                   'ns3::dsdv::RouteFlags', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetHop() const [member function]
+    cls.add_method('GetHop', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ipv4InterfaceAddress ns3::dsdv::RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetLifeTime() const [member function]
+    cls.add_method('GetLifeTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetNextHop() const [member function]
+    cls.add_method('GetNextHop', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ptr<ns3::NetDevice> ns3::dsdv::RoutingTableEntry::GetOutputDevice() const [member function]
+    cls.add_method('GetOutputDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingTableEntry::GetRoute() const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetSeqNo() const [member function]
+    cls.add_method('GetSeqNo', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetSettlingTime() const [member function]
+    cls.add_method('GetSettlingTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetEntriesChanged(bool entriesChanged) [member function]
+    cls.add_method('SetEntriesChanged', 
+                   'void', 
+                   [param('bool', 'entriesChanged')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetFlag(ns3::dsdv::RouteFlags flag) [member function]
+    cls.add_method('SetFlag', 
+                   'void', 
+                   [param('ns3::dsdv::RouteFlags', 'flag')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetHop(uint32_t hopCount) [member function]
+    cls.add_method('SetHop', 
+                   'void', 
+                   [param('uint32_t', 'hopCount')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetInterface(ns3::Ipv4InterfaceAddress iface) [member function]
+    cls.add_method('SetInterface', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetLifeTime(ns3::Time lifeTime) [member function]
+    cls.add_method('SetLifeTime', 
+                   'void', 
+                   [param('ns3::Time', 'lifeTime')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetNextHop(ns3::Ipv4Address nextHop) [member function]
+    cls.add_method('SetNextHop', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nextHop')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetOutputDevice(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('SetOutputDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetRoute(ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('SetRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSeqNo(uint32_t sequenceNumber) [member function]
+    cls.add_method('SetSeqNo', 
+                   'void', 
+                   [param('uint32_t', 'sequenceNumber')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSettlingTime(ns3::Time settlingTime) [member function]
+    cls.add_method('SetSettlingTime', 
+                   'void', 
+                   [param('ns3::Time', 'settlingTime')])
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_energy.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_energy.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,36 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
+    module.add_class('DeviceEnergyModelContainer')
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
+    module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
+    ## energy-model-helper.h: ns3::EnergySourceHelper [class]
+    module.add_class('EnergySourceHelper', allow_subclassing=True)
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper [class]
+    module.add_class('RvBatteryModelHelper', parent=root_module['ns3::EnergySourceHelper'])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
+    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener [class]
+    module.add_class('WifiRadioEnergyModelPhyListener', parent=root_module['ns3::WifiPhyListener'])
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
+    module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
+    ## device-energy-model.h: ns3::DeviceEnergyModel [class]
+    module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
+    ## energy-source.h: ns3::EnergySource [class]
+    module.add_class('EnergySource', parent=root_module['ns3::Object'])
+    ## energy-source-container.h: ns3::EnergySourceContainer [class]
+    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource [class]
+    module.add_class('LiIonEnergySource', parent=root_module['ns3::EnergySource'])
+    ## rv-battery-model.h: ns3::RvBatteryModel [class]
+    module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource'])
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel [class]
+    module.add_class('SimpleDeviceEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
+    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## basic-energy-source.h: ns3::BasicEnergySource [class]
+    module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +125,822 @@
     
 
 def register_methods(root_module):
+    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
+    register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
+    register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
+    register_Ns3RvBatteryModelHelper_methods(root_module, root_module['ns3::RvBatteryModelHelper'])
+    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
+    register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener'])
+    register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
+    register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
+    register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
+    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
+    register_Ns3LiIonEnergySource_methods(root_module, root_module['ns3::LiIonEnergySource'])
+    register_Ns3RvBatteryModel_methods(root_module, root_module['ns3::RvBatteryModel'])
+    register_Ns3SimpleDeviceEnergyModel_methods(root_module, root_module['ns3::SimpleDeviceEnergyModel'])
+    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
+    register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
+    return
+
+def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
+    cls.add_constructor([param('std::string', 'modelName')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::DeviceEnergyModelContainer', 'container')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'modelName')])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('Install', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
+    cls.add_method('Install', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySourceHelper_methods(root_module, cls):
+    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
+    cls.add_constructor([])
+    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::EnergySourceContainer', 
+                   [], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RvBatteryModelHelper_methods(root_module, cls):
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper(ns3::RvBatteryModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RvBatteryModelHelper const &', 'arg0')])
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper() [constructor]
+    cls.add_constructor([])
+    ## rv-battery-model-helper.h: void ns3::RvBatteryModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## rv-battery-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::RvBatteryModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener(ns3::WifiRadioEnergyModelPhyListener const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelPhyListener const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyMaybeCcaBusyStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(ns3::Time duration) [member function]
+    cls.add_method('NotifySwitchingStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetChangeStateCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    return
+
+def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
+    cls.add_constructor([])
+    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3DeviceEnergyModel_methods(root_module, cls):
+    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel(ns3::DeviceEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
+    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
+    cls.add_method('GetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySource_methods(root_module, cls):
+    ## energy-source.h: ns3::EnergySource::EnergySource(ns3::EnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySource const &', 'arg0')])
+    ## energy-source.h: ns3::EnergySource::EnergySource() [constructor]
+    cls.add_constructor([])
+    ## energy-source.h: void ns3::EnergySource::AppendDeviceEnergyModel(ns3::Ptr<ns3::DeviceEnergyModel> deviceEnergyModelPtr) [member function]
+    cls.add_method('AppendDeviceEnergyModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'deviceEnergyModelPtr')])
+    ## energy-source.h: void ns3::EnergySource::DisposeDeviceModels() [member function]
+    cls.add_method('DisposeDeviceModels', 
+                   'void', 
+                   [])
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
+    cls.add_method('FindDeviceEnergyModels', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::TypeId', 'tid')])
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
+    cls.add_method('FindDeviceEnergyModels', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('std::string', 'name')])
+    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## energy-source.h: void ns3::EnergySource::StartDeviceModels() [member function]
+    cls.add_method('StartDeviceModels', 
+                   'void', 
+                   [])
+    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
+    cls.add_method('BreakDeviceEnergyModelRefCycle', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
+    cls.add_method('CalculateTotalCurrent', 
+                   'double', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
+    cls.add_method('NotifyEnergyDrained', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySourceContainer_methods(root_module, cls):
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
+    cls.add_constructor([])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
+    cls.add_constructor([param('std::string', 'sourceName')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::EnergySourceContainer', 'container')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'sourceName')])
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LiIonEnergySource_methods(root_module, cls):
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource(ns3::LiIonEnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LiIonEnergySource const &', 'arg0')])
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource() [constructor]
+    cls.add_constructor([])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('DecreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: ns3::Time ns3::LiIonEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## li-ion-energy-source.h: static ns3::TypeId ns3::LiIonEnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('IncreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
+    cls.add_method('SetInitialEnergy', 
+                   'void', 
+                   [param('double', 'initialEnergyJ')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetInitialSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RvBatteryModel_methods(root_module, cls):
+    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel(ns3::RvBatteryModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RvBatteryModel const &', 'arg0')])
+    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel() [constructor]
+    cls.add_constructor([])
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetAlpha() const [member function]
+    cls.add_method('GetAlpha', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBatteryLevel() [member function]
+    cls.add_method('GetBatteryLevel', 
+                   'double', 
+                   [])
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBeta() const [member function]
+    cls.add_method('GetBeta', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetCutoffVoltage() const [member function]
+    cls.add_method('GetCutoffVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetLifetime() const [member function]
+    cls.add_method('GetLifetime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: int ns3::RvBatteryModel::GetNumOfTerms() const [member function]
+    cls.add_method('GetNumOfTerms', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetOpenCircuitVoltage() const [member function]
+    cls.add_method('GetOpenCircuitVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetSamplingInterval() const [member function]
+    cls.add_method('GetSamplingInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## rv-battery-model.h: static ns3::TypeId ns3::RvBatteryModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetAlpha(double alpha) [member function]
+    cls.add_method('SetAlpha', 
+                   'void', 
+                   [param('double', 'alpha')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetBeta(double beta) [member function]
+    cls.add_method('SetBeta', 
+                   'void', 
+                   [param('double', 'beta')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetCutoffVoltage(double voltage) [member function]
+    cls.add_method('SetCutoffVoltage', 
+                   'void', 
+                   [param('double', 'voltage')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetNumOfTerms(int num) [member function]
+    cls.add_method('SetNumOfTerms', 
+                   'void', 
+                   [param('int', 'num')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetOpenCircuitVoltage(double voltage) [member function]
+    cls.add_method('SetOpenCircuitVoltage', 
+                   'void', 
+                   [param('double', 'voltage')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetSamplingInterval(ns3::Time interval) [member function]
+    cls.add_method('SetSamplingInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3SimpleDeviceEnergyModel_methods(root_module, cls):
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel(ns3::SimpleDeviceEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleDeviceEnergyModel const &', 'arg0')])
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: ns3::Ptr<ns3::Node> ns3::SimpleDeviceEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## simple-device-energy-model.h: static ns3::TypeId ns3::SimpleDeviceEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetCurrentA(double current) [member function]
+    cls.add_method('SetCurrentA', 
+                   'void', 
+                   [param('double', 'current')])
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetCcaBusyCurrentA() const [member function]
+    cls.add_method('GetCcaBusyCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'ns3::WifiPhy::State', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
+    cls.add_method('GetIdleCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener() [member function]
+    cls.add_method('GetPhyListener', 
+                   'ns3::WifiRadioEnergyModelPhyListener *', 
+                   [])
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
+    cls.add_method('GetRxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSwitchingCurrentA() const [member function]
+    cls.add_method('GetSwitchingCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
+    cls.add_method('GetTxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetCcaBusyCurrentA(double ccaBusyCurrentA) [member function]
+    cls.add_method('SetCcaBusyCurrentA', 
+                   'void', 
+                   [param('double', 'ccaBusyCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
+    cls.add_method('SetIdleCurrentA', 
+                   'void', 
+                   [param('double', 'idleCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
+    cls.add_method('SetRxCurrentA', 
+                   'void', 
+                   [param('double', 'rxCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSwitchingCurrentA(double switchingCurrentA) [member function]
+    cls.add_method('SetSwitchingCurrentA', 
+                   'void', 
+                   [param('double', 'switchingCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
+    cls.add_method('SetTxCurrentA', 
+                   'void', 
+                   [param('double', 'txCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3BasicEnergySource_methods(root_module, cls):
+    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
+    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
+    cls.add_constructor([])
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
+    cls.add_method('SetInitialEnergy', 
+                   'void', 
+                   [param('double', 'initialEnergyJ')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_flow_monitor.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_flow_monitor.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,40 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper [class]
+    module.add_class('FlowMonitorHelper')
+    ## histogram.h: ns3::Histogram [class]
+    module.add_class('Histogram')
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowClassifier>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowProbe', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowProbe>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## flow-classifier.h: ns3::FlowClassifier [class]
+    module.add_class('FlowClassifier', parent=root_module['ns3::SimpleRefCount< ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> >'])
+    ## flow-monitor.h: ns3::FlowMonitor [class]
+    module.add_class('FlowMonitor', parent=root_module['ns3::Object'])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats [struct]
+    module.add_class('FlowStats', outer_class=root_module['ns3::FlowMonitor'])
+    ## flow-probe.h: ns3::FlowProbe [class]
+    module.add_class('FlowProbe', parent=root_module['ns3::SimpleRefCount< ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> >'])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats [struct]
+    module.add_class('FlowStats', outer_class=root_module['ns3::FlowProbe'])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier [class]
+    module.add_class('Ipv4FlowClassifier', parent=root_module['ns3::FlowClassifier'])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple [struct]
+    module.add_class('FiveTuple', outer_class=root_module['ns3::Ipv4FlowClassifier'])
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe [class]
+    module.add_class('Ipv4FlowProbe', parent=root_module['ns3::FlowProbe'])
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::DropReason [enumeration]
+    module.add_enum('DropReason', ['DROP_NO_ROUTE', 'DROP_TTL_EXPIRE', 'DROP_BAD_CHECKSUM', 'DROP_QUEUE', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_INVALID_REASON'], outer_class=root_module['ns3::Ipv4FlowProbe'])
+    module.add_container('std::map< unsigned int, ns3::FlowMonitor::FlowStats >', ('unsigned int', 'ns3::FlowMonitor::FlowStats'), container_type='map')
+    module.add_container('std::map< unsigned int, ns3::FlowProbe::FlowStats >', ('unsigned int', 'ns3::FlowProbe::FlowStats'), container_type='map')
+    typehandlers.add_type_alias('uint32_t', 'ns3::FlowPacketId')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowPacketId*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowPacketId&')
+    typehandlers.add_type_alias('uint32_t', 'ns3::FlowId')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowId*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowId&')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +129,327 @@
     
 
 def register_methods(root_module):
+    register_Ns3FlowMonitorHelper_methods(root_module, root_module['ns3::FlowMonitorHelper'])
+    register_Ns3Histogram_methods(root_module, root_module['ns3::Histogram'])
+    register_Ns3FlowClassifier_methods(root_module, root_module['ns3::FlowClassifier'])
+    register_Ns3FlowMonitor_methods(root_module, root_module['ns3::FlowMonitor'])
+    register_Ns3FlowMonitorFlowStats_methods(root_module, root_module['ns3::FlowMonitor::FlowStats'])
+    register_Ns3FlowProbe_methods(root_module, root_module['ns3::FlowProbe'])
+    register_Ns3FlowProbeFlowStats_methods(root_module, root_module['ns3::FlowProbe::FlowStats'])
+    register_Ns3Ipv4FlowClassifier_methods(root_module, root_module['ns3::Ipv4FlowClassifier'])
+    register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, root_module['ns3::Ipv4FlowClassifier::FiveTuple'])
+    register_Ns3Ipv4FlowProbe_methods(root_module, root_module['ns3::Ipv4FlowProbe'])
+    return
+
+def register_Ns3FlowMonitorHelper_methods(root_module, cls):
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper(ns3::FlowMonitorHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitorHelper const &', 'arg0')])
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowClassifier> ns3::FlowMonitorHelper::GetClassifier() [member function]
+    cls.add_method('GetClassifier', 
+                   'ns3::Ptr< ns3::FlowClassifier >', 
+                   [])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::GetMonitor() [member function]
+    cls.add_method('GetMonitor', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::NodeContainer nodes) [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [param('ns3::NodeContainer', 'nodes')])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::InstallAll() [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [])
+    ## flow-monitor-helper.h: void ns3::FlowMonitorHelper::SetMonitorAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetMonitorAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    return
+
+def register_Ns3Histogram_methods(root_module, cls):
+    ## histogram.h: ns3::Histogram::Histogram(ns3::Histogram const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Histogram const &', 'arg0')])
+    ## histogram.h: ns3::Histogram::Histogram(double binWidth) [constructor]
+    cls.add_constructor([param('double', 'binWidth')])
+    ## histogram.h: ns3::Histogram::Histogram() [constructor]
+    cls.add_constructor([])
+    ## histogram.h: void ns3::Histogram::AddValue(double value) [member function]
+    cls.add_method('AddValue', 
+                   'void', 
+                   [param('double', 'value')])
+    ## histogram.h: uint32_t ns3::Histogram::GetBinCount(uint32_t index) [member function]
+    cls.add_method('GetBinCount', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinEnd(uint32_t index) [member function]
+    cls.add_method('GetBinEnd', 
+                   'double', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinStart(uint32_t index) [member function]
+    cls.add_method('GetBinStart', 
+                   'double', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinWidth(uint32_t index) const [member function]
+    cls.add_method('GetBinWidth', 
+                   'double', 
+                   [param('uint32_t', 'index')], 
+                   is_const=True)
+    ## histogram.h: uint32_t ns3::Histogram::GetNBins() const [member function]
+    cls.add_method('GetNBins', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## histogram.h: void ns3::Histogram::SerializeToXmlStream(std::ostream & os, int indent, std::string elementName) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('std::string', 'elementName')], 
+                   is_const=True)
+    ## histogram.h: void ns3::Histogram::SetDefaultBinWidth(double binWidth) [member function]
+    cls.add_method('SetDefaultBinWidth', 
+                   'void', 
+                   [param('double', 'binWidth')])
+    return
+
+def register_Ns3FlowClassifier_methods(root_module, cls):
+    ## flow-classifier.h: ns3::FlowClassifier::FlowClassifier() [constructor]
+    cls.add_constructor([])
+    ## flow-classifier.h: void ns3::FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## flow-classifier.h: ns3::FlowId ns3::FlowClassifier::GetNewFlowId() [member function]
+    cls.add_method('GetNewFlowId', 
+                   'ns3::FlowId', 
+                   [], 
+                   visibility='protected')
+    return
+
+def register_Ns3FlowMonitor_methods(root_module, cls):
+    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor(ns3::FlowMonitor const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitor const &', 'arg0')])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor.h: void ns3::FlowMonitor::AddProbe(ns3::Ptr<ns3::FlowProbe> probe) [member function]
+    cls.add_method('AddProbe', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe')])
+    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets() [member function]
+    cls.add_method('CheckForLostPackets', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets(ns3::Time maxDelay) [member function]
+    cls.add_method('CheckForLostPackets', 
+                   'void', 
+                   [param('ns3::Time', 'maxDelay')])
+    ## flow-monitor.h: std::vector<ns3::Ptr<ns3::FlowProbe>, std::allocator<ns3::Ptr<ns3::FlowProbe> > > ns3::FlowMonitor::GetAllProbes() const [member function]
+    cls.add_method('GetAllProbes', 
+                   'std::vector< ns3::Ptr< ns3::FlowProbe > >', 
+                   [], 
+                   is_const=True)
+    ## flow-monitor.h: std::map<unsigned int, ns3::FlowMonitor::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowMonitor::FlowStats> > > ns3::FlowMonitor::GetFlowStats() const [member function]
+    cls.add_method('GetFlowStats', 
+                   'std::map< unsigned int, ns3::FlowMonitor::FlowStats >', 
+                   [], 
+                   is_const=True)
+    ## flow-monitor.h: ns3::TypeId ns3::FlowMonitor::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## flow-monitor.h: static ns3::TypeId ns3::FlowMonitor::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportDrop(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode) [member function]
+    cls.add_method('ReportDrop', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportFirstTx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportFirstTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportForwarding(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportForwarding', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportLastRx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportLastRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlFile(std::string fileName, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlFile', 
+                   'void', 
+                   [param('std::string', 'fileName'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlStream(std::ostream & os, int indent, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: std::string ns3::FlowMonitor::SerializeToXmlString(int indent, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlString', 
+                   'std::string', 
+                   [param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SetFlowClassifier(ns3::Ptr<ns3::FlowClassifier> classifier) [member function]
+    cls.add_method('SetFlowClassifier', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowClassifier >', 'classifier')])
+    ## flow-monitor.h: void ns3::FlowMonitor::Start(ns3::Time const & time) [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')])
+    ## flow-monitor.h: void ns3::FlowMonitor::StartRightNow() [member function]
+    cls.add_method('StartRightNow', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::Stop(ns3::Time const & time) [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')])
+    ## flow-monitor.h: void ns3::FlowMonitor::StopRightNow() [member function]
+    cls.add_method('StopRightNow', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::NotifyConstructionCompleted() [member function]
+    cls.add_method('NotifyConstructionCompleted', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3FlowMonitorFlowStats_methods(root_module, cls):
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats(ns3::FlowMonitor::FlowStats const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitor::FlowStats const &', 'arg0')])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::bytesDropped [variable]
+    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long long >', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delayHistogram [variable]
+    cls.add_instance_attribute('delayHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delaySum [variable]
+    cls.add_instance_attribute('delaySum', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::flowInterruptionsHistogram [variable]
+    cls.add_instance_attribute('flowInterruptionsHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterHistogram [variable]
+    cls.add_instance_attribute('jitterHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterSum [variable]
+    cls.add_instance_attribute('jitterSum', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lastDelay [variable]
+    cls.add_instance_attribute('lastDelay', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lostPackets [variable]
+    cls.add_instance_attribute('lostPackets', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetSizeHistogram [variable]
+    cls.add_instance_attribute('packetSizeHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetsDropped [variable]
+    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxBytes [variable]
+    cls.add_instance_attribute('rxBytes', 'uint64_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxPackets [variable]
+    cls.add_instance_attribute('rxPackets', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstRxPacket [variable]
+    cls.add_instance_attribute('timeFirstRxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstTxPacket [variable]
+    cls.add_instance_attribute('timeFirstTxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastRxPacket [variable]
+    cls.add_instance_attribute('timeLastRxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastTxPacket [variable]
+    cls.add_instance_attribute('timeLastTxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timesForwarded [variable]
+    cls.add_instance_attribute('timesForwarded', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txBytes [variable]
+    cls.add_instance_attribute('txBytes', 'uint64_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txPackets [variable]
+    cls.add_instance_attribute('txPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3FlowProbe_methods(root_module, cls):
+    ## flow-probe.h: void ns3::FlowProbe::AddPacketDropStats(ns3::FlowId flowId, uint32_t packetSize, uint32_t reasonCode) [member function]
+    cls.add_method('AddPacketDropStats', 
+                   'void', 
+                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
+    ## flow-probe.h: void ns3::FlowProbe::AddPacketStats(ns3::FlowId flowId, uint32_t packetSize, ns3::Time delayFromFirstProbe) [member function]
+    cls.add_method('AddPacketStats', 
+                   'void', 
+                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('ns3::Time', 'delayFromFirstProbe')])
+    ## flow-probe.h: std::map<unsigned int, ns3::FlowProbe::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowProbe::FlowStats> > > ns3::FlowProbe::GetStats() const [member function]
+    cls.add_method('GetStats', 
+                   'std::map< unsigned int, ns3::FlowProbe::FlowStats >', 
+                   [], 
+                   is_const=True)
+    ## flow-probe.h: void ns3::FlowProbe::SerializeToXmlStream(std::ostream & os, int indent, uint32_t index) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('uint32_t', 'index')], 
+                   is_const=True)
+    ## flow-probe.h: ns3::FlowProbe::FlowProbe(ns3::Ptr<ns3::FlowMonitor> flowMonitor) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'flowMonitor')], 
+                        visibility='protected')
+    return
+
+def register_Ns3FlowProbeFlowStats_methods(root_module, cls):
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats(ns3::FlowProbe::FlowStats const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowProbe::FlowStats const &', 'arg0')])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats() [constructor]
+    cls.add_constructor([])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint64_t', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytesDropped [variable]
+    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long long >', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::delayFromFirstProbeSum [variable]
+    cls.add_instance_attribute('delayFromFirstProbeSum', 'ns3::Time', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::packets [variable]
+    cls.add_instance_attribute('packets', 'uint32_t', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::packetsDropped [variable]
+    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
+    return
+
+def register_Ns3Ipv4FlowClassifier_methods(root_module, cls):
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::Ipv4FlowClassifier() [constructor]
+    cls.add_constructor([])
+    ## ipv4-flow-classifier.h: bool ns3::Ipv4FlowClassifier::Classify(ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet const> ipPayload, uint32_t * out_flowId, uint32_t * out_packetId) [member function]
+    cls.add_method('Classify', 
+                   'bool', 
+                   [param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet const >', 'ipPayload'), param('uint32_t *', 'out_flowId'), param('uint32_t *', 'out_packetId')])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple ns3::Ipv4FlowClassifier::FindFlow(ns3::FlowId flowId) const [member function]
+    cls.add_method('FindFlow', 
+                   'ns3::Ipv4FlowClassifier::FiveTuple', 
+                   [param('ns3::FlowId', 'flowId')], 
+                   is_const=True)
+    ## ipv4-flow-classifier.h: void ns3::Ipv4FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
+    cls.add_constructor([])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4FlowClassifier::FiveTuple const &', 'arg0')])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationAddress [variable]
+    cls.add_instance_attribute('destinationAddress', 'ns3::Ipv4Address', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationPort [variable]
+    cls.add_instance_attribute('destinationPort', 'uint16_t', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::protocol [variable]
+    cls.add_instance_attribute('protocol', 'uint8_t', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourceAddress [variable]
+    cls.add_instance_attribute('sourceAddress', 'ns3::Ipv4Address', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourcePort [variable]
+    cls.add_instance_attribute('sourcePort', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3Ipv4FlowProbe_methods(root_module, cls):
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::Ipv4FlowProbe(ns3::Ptr<ns3::FlowMonitor> monitor, ns3::Ptr<ns3::Ipv4FlowClassifier> classifier, ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'monitor'), param('ns3::Ptr< ns3::Ipv4FlowClassifier >', 'classifier'), param('ns3::Ptr< ns3::Node >', 'node')])
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_global_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_global_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,24 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## global-route-manager.h: ns3::GlobalRouteManager [class]
+    module.add_class('GlobalRouteManager')
+    ## global-router-interface.h: ns3::GlobalRoutingLSA [class]
+    module.add_class('GlobalRoutingLSA')
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType [enumeration]
+    module.add_enum('LSType', ['Unknown', 'RouterLSA', 'NetworkLSA', 'SummaryLSA', 'SummaryLSA_ASBR', 'ASExternalLSAs'], outer_class=root_module['ns3::GlobalRoutingLSA'])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus [enumeration]
+    module.add_enum('SPFStatus', ['LSA_SPF_NOT_EXPLORED', 'LSA_SPF_CANDIDATE', 'LSA_SPF_IN_SPFTREE'], outer_class=root_module['ns3::GlobalRoutingLSA'])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord [class]
+    module.add_class('GlobalRoutingLinkRecord')
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType [enumeration]
+    module.add_enum('LinkType', ['Unknown', 'PointToPoint', 'TransitNetwork', 'StubNetwork', 'VirtualLink'], outer_class=root_module['ns3::GlobalRoutingLinkRecord'])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper [class]
+    module.add_class('Ipv4GlobalRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## global-router-interface.h: ns3::GlobalRouter [class]
+    module.add_class('GlobalRouter', is_singleton=True, parent=root_module['ns3::Object'])
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting [class]
+    module.add_class('Ipv4GlobalRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +113,370 @@
     
 
 def register_methods(root_module):
+    register_Ns3GlobalRouteManager_methods(root_module, root_module['ns3::GlobalRouteManager'])
+    register_Ns3GlobalRoutingLSA_methods(root_module, root_module['ns3::GlobalRoutingLSA'])
+    register_Ns3GlobalRoutingLinkRecord_methods(root_module, root_module['ns3::GlobalRoutingLinkRecord'])
+    register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, root_module['ns3::Ipv4GlobalRoutingHelper'])
+    register_Ns3GlobalRouter_methods(root_module, root_module['ns3::GlobalRouter'])
+    register_Ns3Ipv4GlobalRouting_methods(root_module, root_module['ns3::Ipv4GlobalRouting'])
+    return
+
+def register_Ns3GlobalRouteManager_methods(root_module, cls):
+    ## global-route-manager.h: static uint32_t ns3::GlobalRouteManager::AllocateRouterId() [member function]
+    cls.add_method('AllocateRouterId', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::DeleteGlobalRoutes() [member function]
+    cls.add_method('DeleteGlobalRoutes', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::BuildGlobalRoutingDatabase() [member function]
+    cls.add_method('BuildGlobalRoutingDatabase', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::InitializeRoutes() [member function]
+    cls.add_method('InitializeRoutes', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3GlobalRoutingLSA_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA::SPFStatus status, ns3::Ipv4Address linkStateId, ns3::Ipv4Address advertisingRtr) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLSA::SPFStatus', 'status'), param('ns3::Ipv4Address', 'linkStateId'), param('ns3::Ipv4Address', 'advertisingRtr')])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA & lsa) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLSA &', 'lsa')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddAttachedRouter(ns3::Ipv4Address addr) [member function]
+    cls.add_method('AddAttachedRouter', 
+                   'uint32_t', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddLinkRecord(ns3::GlobalRoutingLinkRecord * lr) [member function]
+    cls.add_method('AddLinkRecord', 
+                   'uint32_t', 
+                   [param('ns3::GlobalRoutingLinkRecord *', 'lr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::ClearLinkRecords() [member function]
+    cls.add_method('ClearLinkRecords', 
+                   'void', 
+                   [])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::CopyLinkRecords(ns3::GlobalRoutingLSA const & lsa) [member function]
+    cls.add_method('CopyLinkRecords', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA const &', 'lsa')])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAdvertisingRouter() const [member function]
+    cls.add_method('GetAdvertisingRouter', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAttachedRouter(uint32_t n) const [member function]
+    cls.add_method('GetAttachedRouter', 
+                   'ns3::Ipv4Address', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType ns3::GlobalRoutingLSA::GetLSType() const [member function]
+    cls.add_method('GetLSType', 
+                   'ns3::GlobalRoutingLSA::LSType', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord * ns3::GlobalRoutingLSA::GetLinkRecord(uint32_t n) const [member function]
+    cls.add_method('GetLinkRecord', 
+                   'ns3::GlobalRoutingLinkRecord *', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetLinkStateId() const [member function]
+    cls.add_method('GetLinkStateId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNAttachedRouters() const [member function]
+    cls.add_method('GetNAttachedRouters', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNLinkRecords() const [member function]
+    cls.add_method('GetNLinkRecords', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Mask ns3::GlobalRoutingLSA::GetNetworkLSANetworkMask() const [member function]
+    cls.add_method('GetNetworkLSANetworkMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ptr<ns3::Node> ns3::GlobalRoutingLSA::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus ns3::GlobalRoutingLSA::GetStatus() const [member function]
+    cls.add_method('GetStatus', 
+                   'ns3::GlobalRoutingLSA::SPFStatus', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: bool ns3::GlobalRoutingLSA::IsEmpty() const [member function]
+    cls.add_method('IsEmpty', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetAdvertisingRouter(ns3::Ipv4Address rtr) [member function]
+    cls.add_method('SetAdvertisingRouter', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'rtr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLSType(ns3::GlobalRoutingLSA::LSType typ) [member function]
+    cls.add_method('SetLSType', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA::LSType', 'typ')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLinkStateId(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkStateId', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNetworkLSANetworkMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetNetworkLSANetworkMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetStatus(ns3::GlobalRoutingLSA::SPFStatus status) [member function]
+    cls.add_method('SetStatus', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA::SPFStatus', 'status')])
+    return
+
+def register_Ns3GlobalRoutingLinkRecord_methods(root_module, cls):
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord const &', 'arg0')])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord::LinkType linkType, ns3::Ipv4Address linkId, ns3::Ipv4Address linkData, uint16_t metric) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType'), param('ns3::Ipv4Address', 'linkId'), param('ns3::Ipv4Address', 'linkData'), param('uint16_t', 'metric')])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkData() const [member function]
+    cls.add_method('GetLinkData', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkId() const [member function]
+    cls.add_method('GetLinkId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType ns3::GlobalRoutingLinkRecord::GetLinkType() const [member function]
+    cls.add_method('GetLinkType', 
+                   'ns3::GlobalRoutingLinkRecord::LinkType', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint16_t ns3::GlobalRoutingLinkRecord::GetMetric() const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkData(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkData', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkId(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkId', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkType(ns3::GlobalRoutingLinkRecord::LinkType linkType) [member function]
+    cls.add_method('SetLinkType', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetMetric(uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint16_t', 'metric')])
+    return
+
+def register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, cls):
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper(ns3::Ipv4GlobalRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4GlobalRoutingHelper const &', 'arg0')])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper * ns3::Ipv4GlobalRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4GlobalRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4GlobalRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables() [member function]
+    cls.add_method('PopulateRoutingTables', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables() [member function]
+    cls.add_method('RecomputeRoutingTables', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3GlobalRouter_methods(root_module, cls):
+    ## global-router-interface.h: static ns3::TypeId ns3::GlobalRouter::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## global-router-interface.h: ns3::GlobalRouter::GlobalRouter() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: void ns3::GlobalRouter::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4GlobalRouting> routing) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4GlobalRouting >', 'routing')])
+    ## global-router-interface.h: ns3::Ptr<ns3::Ipv4GlobalRouting> ns3::GlobalRouter::GetRoutingProtocol() [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4GlobalRouting >', 
+                   [])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRouter::GetRouterId() const [member function]
+    cls.add_method('GetRouterId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::DiscoverLSAs() [member function]
+    cls.add_method('DiscoverLSAs', 
+                   'uint32_t', 
+                   [])
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNumLSAs() const [member function]
+    cls.add_method('GetNumLSAs', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: bool ns3::GlobalRouter::GetLSA(uint32_t n, ns3::GlobalRoutingLSA & lsa) const [member function]
+    cls.add_method('GetLSA', 
+                   'bool', 
+                   [param('uint32_t', 'n'), param('ns3::GlobalRoutingLSA &', 'lsa')], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRouter::InjectRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
+    cls.add_method('InjectRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNInjectedRoutes() [member function]
+    cls.add_method('GetNInjectedRoutes', 
+                   'uint32_t', 
+                   [])
+    ## global-router-interface.h: ns3::Ipv4RoutingTableEntry * ns3::GlobalRouter::GetInjectedRoute(uint32_t i) [member function]
+    cls.add_method('GetInjectedRoute', 
+                   retval('ns3::Ipv4RoutingTableEntry *', caller_owns_return=False), 
+                   [param('uint32_t', 'i')])
+    ## global-router-interface.h: void ns3::GlobalRouter::RemoveInjectedRoute(uint32_t i) [member function]
+    cls.add_method('RemoveInjectedRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## global-router-interface.h: bool ns3::GlobalRouter::WithdrawRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
+    cls.add_method('WithdrawRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
+    ## global-router-interface.h: void ns3::GlobalRouter::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3Ipv4GlobalRouting_methods(root_module, cls):
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting(ns3::Ipv4GlobalRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4GlobalRouting const &', 'arg0')])
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddASExternalRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddASExternalRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: uint32_t ns3::Ipv4GlobalRouting::GetNRoutes() const [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-global-routing.h: ns3::Ipv4RoutingTableEntry * ns3::Ipv4GlobalRouting::GetRoute(uint32_t i) const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv4RoutingTableEntry *', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-global-routing.h: static ns3::TypeId ns3::Ipv4GlobalRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv4-global-routing.h: bool ns3::Ipv4GlobalRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4GlobalRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_helper.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,8 +3,6 @@
 def register_types(module):
     root_module = module.get_root()
     
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper [class]
-    module.add_class('AdhocAlohaNoackIdealPhyHelper')
     ## animation-interface.h: ns3::AnimationInterface [class]
     module.add_class('AnimationInterface')
     ## application-container.h: ns3::ApplicationContainer [class]
@@ -73,12 +71,6 @@
     module.add_class('PointToPointHelper', parent=[root_module['ns3::PcapHelperForDevice'], root_module['ns3::AsciiTraceHelperForDevice']])
     ## point-to-point-star-helper.h: ns3::PointToPointStarHelper [class]
     module.add_class('PointToPointStarHelper')
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper [class]
-    module.add_class('SpectrumAnalyzerHelper')
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper [class]
-    module.add_class('SpectrumChannelHelper')
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper [class]
-    module.add_class('SpectrumPhyHelper')
     ## tap-bridge-helper.h: ns3::TapBridgeHelper [class]
     module.add_class('TapBridgeHelper')
     ## topology-reader-helper.h: ns3::TopologyReaderHelper [class]
@@ -95,8 +87,6 @@
     module.add_class('UdpTraceClientHelper')
     ## v4ping-helper.h: ns3::V4PingHelper [class]
     module.add_class('V4PingHelper')
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper [class]
-    module.add_class('WaveformGeneratorHelper')
     ## wifi-helper.h: ns3::WifiHelper [class]
     module.add_class('WifiHelper')
     ## wifi-helper.h: ns3::WifiMacHelper [class]
@@ -233,7 +223,6 @@
     
 
 def register_methods(root_module):
-    register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, root_module['ns3::AdhocAlohaNoackIdealPhyHelper'])
     register_Ns3AnimationInterface_methods(root_module, root_module['ns3::AnimationInterface'])
     register_Ns3ApplicationContainer_methods(root_module, root_module['ns3::ApplicationContainer'])
     register_Ns3AsciiTraceHelper_methods(root_module, root_module['ns3::AsciiTraceHelper'])
@@ -266,9 +255,6 @@
     register_Ns3PointToPointGridHelper_methods(root_module, root_module['ns3::PointToPointGridHelper'])
     register_Ns3PointToPointHelper_methods(root_module, root_module['ns3::PointToPointHelper'])
     register_Ns3PointToPointStarHelper_methods(root_module, root_module['ns3::PointToPointStarHelper'])
-    register_Ns3SpectrumAnalyzerHelper_methods(root_module, root_module['ns3::SpectrumAnalyzerHelper'])
-    register_Ns3SpectrumChannelHelper_methods(root_module, root_module['ns3::SpectrumChannelHelper'])
-    register_Ns3SpectrumPhyHelper_methods(root_module, root_module['ns3::SpectrumPhyHelper'])
     register_Ns3TapBridgeHelper_methods(root_module, root_module['ns3::TapBridgeHelper'])
     register_Ns3TopologyReaderHelper_methods(root_module, root_module['ns3::TopologyReaderHelper'])
     register_Ns3UdpClientHelper_methods(root_module, root_module['ns3::UdpClientHelper'])
@@ -277,7 +263,6 @@
     register_Ns3UdpServerHelper_methods(root_module, root_module['ns3::UdpServerHelper'])
     register_Ns3UdpTraceClientHelper_methods(root_module, root_module['ns3::UdpTraceClientHelper'])
     register_Ns3V4PingHelper_methods(root_module, root_module['ns3::V4PingHelper'])
-    register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper'])
     register_Ns3WifiHelper_methods(root_module, root_module['ns3::WifiHelper'])
     register_Ns3WifiMacHelper_methods(root_module, root_module['ns3::WifiMacHelper'])
     register_Ns3WifiPhyHelper_methods(root_module, root_module['ns3::WifiPhyHelper'])
@@ -298,52 +283,6 @@
     register_Ns3FlameStack_methods(root_module, root_module['ns3::FlameStack'])
     return
 
-def register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, cls):
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper(ns3::AdhocAlohaNoackIdealPhyHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AdhocAlohaNoackIdealPhyHelper const &', 'arg0')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper() [constructor]
-    cls.add_constructor([])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> noisePsd) [member function]
-    cls.add_method('SetNoisePowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'noisePsd')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    return
-
 def register_Ns3AnimationInterface_methods(root_module, cls):
     ## animation-interface.h: ns3::AnimationInterface::AnimationInterface(ns3::AnimationInterface const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::AnimationInterface const &', 'arg0')])
@@ -1617,109 +1556,6 @@
                    is_const=True)
     return
 
-def register_Ns3SpectrumAnalyzerHelper_methods(root_module, cls):
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper(ns3::SpectrumAnalyzerHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumAnalyzerHelper const &', 'arg0')])
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::EnableAsciiAll(std::string prefix) [member function]
-    cls.add_method('EnableAsciiAll', 
-                   'void', 
-                   [param('std::string', 'prefix')])
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetRxSpectrumModel(ns3::Ptr<ns3::SpectrumModel> m) [member function]
-    cls.add_method('SetRxSpectrumModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumModel >', 'm')])
-    return
-
-def register_Ns3SpectrumChannelHelper_methods(root_module, cls):
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper(ns3::SpectrumChannelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumChannelHelper const &', 'arg0')])
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::AddSpectrumPropagationLoss(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('AddSpectrumPropagationLoss', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumChannel> ns3::SpectrumChannelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-helper.h: static ns3::SpectrumChannelHelper ns3::SpectrumChannelHelper::Default() [member function]
-    cls.add_method('Default', 
-                   'ns3::SpectrumChannelHelper', 
-                   [], 
-                   is_static=True)
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetChannel(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetPropagationDelay(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPropagationDelay', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    return
-
-def register_Ns3SpectrumPhyHelper_methods(root_module, cls):
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper(ns3::SpectrumPhyHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPhyHelper const &', 'arg0')])
-    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumPhy> ns3::SpectrumPhyHelper::Create(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::NetDevice> device) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::SpectrumPhy >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], 
-                   is_const=True)
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhy(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    return
-
 def register_Ns3TapBridgeHelper_methods(root_module, cls):
     ## tap-bridge-helper.h: ns3::TapBridgeHelper::TapBridgeHelper(ns3::TapBridgeHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TapBridgeHelper const &', 'arg0')])
@@ -1917,48 +1753,6 @@
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
     return
 
-def register_Ns3WaveformGeneratorHelper_methods(root_module, cls):
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper(ns3::WaveformGeneratorHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WaveformGeneratorHelper const &', 'arg0')])
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper() [constructor]
-    cls.add_constructor([])
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    return
-
 def register_Ns3WifiHelper_methods(root_module, cls):
     ## wifi-helper.h: ns3::WifiHelper::WifiHelper(ns3::WifiHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::WifiHelper const &', 'arg0')])
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_internet_stack.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_internet_stack.py	Tue Feb 08 13:08:45 2011 -0500
@@ -57,6 +57,8 @@
     module.add_class('Icmpv6TimeExceeded', parent=root_module['ns3::Icmpv6Header'])
     ## icmpv6-header.h: ns3::Icmpv6TooBig [class]
     module.add_class('Icmpv6TooBig', parent=root_module['ns3::Icmpv6Header'])
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag [class]
+    module.add_class('Ipv4PacketInfoTag', parent=root_module['ns3::Tag'])
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHeader [class]
     module.add_class('Ipv6ExtensionHeader', parent=root_module['ns3::Header'])
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHopByHopHeader [class]
@@ -75,6 +77,8 @@
     module.add_class('Ipv6OptionPadnHeader', parent=root_module['ns3::Ipv6OptionHeader'])
     ## ipv6-option-header.h: ns3::Ipv6OptionRouterAlertHeader [class]
     module.add_class('Ipv6OptionRouterAlertHeader', parent=root_module['ns3::Ipv6OptionHeader'])
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag [class]
+    module.add_class('Ipv6PacketInfoTag', parent=root_module['ns3::Tag'])
     ## tcp-header.h: ns3::TcpHeader [class]
     module.add_class('TcpHeader', parent=root_module['ns3::Header'])
     ## tcp-header.h: ns3::TcpHeader::Flags_t [enumeration]
@@ -250,6 +254,7 @@
     register_Ns3Icmpv6Redirection_methods(root_module, root_module['ns3::Icmpv6Redirection'])
     register_Ns3Icmpv6TimeExceeded_methods(root_module, root_module['ns3::Icmpv6TimeExceeded'])
     register_Ns3Icmpv6TooBig_methods(root_module, root_module['ns3::Icmpv6TooBig'])
+    register_Ns3Ipv4PacketInfoTag_methods(root_module, root_module['ns3::Ipv4PacketInfoTag'])
     register_Ns3Ipv6ExtensionHeader_methods(root_module, root_module['ns3::Ipv6ExtensionHeader'])
     register_Ns3Ipv6ExtensionHopByHopHeader_methods(root_module, root_module['ns3::Ipv6ExtensionHopByHopHeader'])
     register_Ns3Ipv6ExtensionRoutingHeader_methods(root_module, root_module['ns3::Ipv6ExtensionRoutingHeader'])
@@ -259,6 +264,7 @@
     register_Ns3Ipv6OptionPad1Header_methods(root_module, root_module['ns3::Ipv6OptionPad1Header'])
     register_Ns3Ipv6OptionPadnHeader_methods(root_module, root_module['ns3::Ipv6OptionPadnHeader'])
     register_Ns3Ipv6OptionRouterAlertHeader_methods(root_module, root_module['ns3::Ipv6OptionRouterAlertHeader'])
+    register_Ns3Ipv6PacketInfoTag_methods(root_module, root_module['ns3::Ipv6PacketInfoTag'])
     register_Ns3TcpHeader_methods(root_module, root_module['ns3::TcpHeader'])
     register_Ns3UdpHeader_methods(root_module, root_module['ns3::UdpHeader'])
     register_Ns3ArpCache_methods(root_module, root_module['ns3::ArpCache'])
@@ -1450,6 +1456,79 @@
                    [param('ns3::Ptr< ns3::Packet >', 'p')])
     return
 
+def register_Ns3Ipv4PacketInfoTag_methods(root_module, cls):
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag(ns3::Ipv4PacketInfoTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4PacketInfoTag const &', 'arg0')])
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag() [constructor]
+    cls.add_constructor([])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: ns3::TypeId ns3::Ipv4PacketInfoTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetLocalAddress() const [member function]
+    cls.add_method('GetLocalAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetRecvIf() const [member function]
+    cls.add_method('GetRecvIf', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: uint8_t ns3::Ipv4PacketInfoTag::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: static ns3::TypeId ns3::Ipv4PacketInfoTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetAddress(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetLocalAddress(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLocalAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
+    cls.add_method('SetRecvIf', 
+                   'void', 
+                   [param('uint32_t', 'ifindex')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
 def register_Ns3Ipv6ExtensionHeader_methods(root_module, cls):
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHeader::Ipv6ExtensionHeader(ns3::Ipv6ExtensionHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv6ExtensionHeader const &', 'arg0')])
@@ -1844,6 +1923,79 @@
                    [param('uint16_t', 'value')])
     return
 
+def register_Ns3Ipv6PacketInfoTag_methods(root_module, cls):
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag(ns3::Ipv6PacketInfoTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6PacketInfoTag const &', 'arg0')])
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag() [constructor]
+    cls.add_constructor([])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ipv6-packet-info-tag.h: ns3::Ipv6Address ns3::Ipv6PacketInfoTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetHoplimit() const [member function]
+    cls.add_method('GetHoplimit', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: ns3::TypeId ns3::Ipv6PacketInfoTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetRecvIf() const [member function]
+    cls.add_method('GetRecvIf', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetTrafficClass() const [member function]
+    cls.add_method('GetTrafficClass', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: static ns3::TypeId ns3::Ipv6PacketInfoTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetAddress(ns3::Ipv6Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'addr')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetHoplimit(uint8_t ttl) [member function]
+    cls.add_method('SetHoplimit', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
+    cls.add_method('SetRecvIf', 
+                   'void', 
+                   [param('uint32_t', 'ifindex')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetTrafficClass(uint8_t tclass) [member function]
+    cls.add_method('SetTrafficClass', 
+                   'void', 
+                   [param('uint8_t', 'tclass')])
+    return
+
 def register_Ns3TcpHeader_methods(root_module, cls):
     ## tcp-header.h: ns3::TcpHeader::TcpHeader(ns3::TcpHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TcpHeader const &', 'arg0')])
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_list_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_list_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,14 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper [class]
+    module.add_class('Ipv4ListRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper [class]
+    module.add_class('Ipv6ListRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting [class]
+    module.add_class('Ipv4ListRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting [class]
+    module.add_class('Ipv6ListRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +103,206 @@
     
 
 def register_methods(root_module):
+    register_Ns3Ipv4ListRoutingHelper_methods(root_module, root_module['ns3::Ipv4ListRoutingHelper'])
+    register_Ns3Ipv6ListRoutingHelper_methods(root_module, root_module['ns3::Ipv6ListRoutingHelper'])
+    register_Ns3Ipv4ListRouting_methods(root_module, root_module['ns3::Ipv4ListRouting'])
+    register_Ns3Ipv6ListRouting_methods(root_module, root_module['ns3::Ipv6ListRouting'])
+    return
+
+def register_Ns3Ipv4ListRoutingHelper_methods(root_module, cls):
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper(ns3::Ipv4ListRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4ListRoutingHelper const &', 'arg0')])
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper * ns3::Ipv4ListRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4ListRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing-helper.h: void ns3::Ipv4ListRoutingHelper::Add(ns3::Ipv4RoutingHelper const & routing, int16_t priority) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ipv4RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
+    ## ipv4-list-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv6ListRoutingHelper_methods(root_module, cls):
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper(ns3::Ipv6ListRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6ListRoutingHelper const &', 'arg0')])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper * ns3::Ipv6ListRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv6ListRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing-helper.h: void ns3::Ipv6ListRoutingHelper::Add(ns3::Ipv6RoutingHelper const & routing, int16_t priority) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ipv6RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
+    ## ipv6-list-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4ListRouting_methods(root_module, cls):
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting(ns3::Ipv4ListRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4ListRouting const &', 'arg0')])
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol, int16_t priority) [member function]
+    cls.add_method('AddRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: uint32_t ns3::Ipv4ListRouting::GetNRoutingProtocols() const [member function]
+    cls.add_method('GetNRoutingProtocols', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('uint32_t', 'index'), param('int16_t &', 'priority', direction=2)], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: static ns3::TypeId ns3::Ipv4ListRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3Ipv6ListRouting_methods(root_module, cls):
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting(ns3::Ipv6ListRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6ListRouting const &', 'arg0')])
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv6RoutingProtocol> routingProtocol, int16_t priority) [member function]
+    cls.add_method('AddRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: uint32_t ns3::Ipv6ListRouting::GetNRoutingProtocols() const [member function]
+    cls.add_method('GetNRoutingProtocols', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('uint32_t', 'index'), param('int16_t &', 'priority')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing.h: static ns3::TypeId ns3::Ipv6ListRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyAddRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyRemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: bool ns3::Ipv6ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv6Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
+    cls.add_method('SetIpv6', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_lte.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_lte.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,102 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## lte-helper.h: ns3::LteHelper [class]
+    module.add_class('LteHelper')
+    ## lte-helper.h: ns3::LteHelper::NetDeviceType [enumeration]
+    module.add_enum('NetDeviceType', ['DEVICE_TYPE_USER_EQUIPMENT', 'DEVICE_TYPE_ENODEB'], outer_class=root_module['ns3::LteHelper'])
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper [class]
+    module.add_class('LteSpectrumValueHelper')
+    ## lte-mac-header.h: ns3::LteMacHeader [class]
+    module.add_class('LteMacHeader', parent=root_module['ns3::Header'])
+    ## packet-scheduler.h: ns3::PacketScheduler [class]
+    module.add_class('PacketScheduler', parent=root_module['ns3::Object'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance [class]
+    module.add_class('RadioBearerInstance', parent=root_module['ns3::Object'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection [enumeration]
+    module.add_enum('BearerDirection', ['DIRECTION_TYPE_UL', 'DIRECTION_TYPE_DL'], outer_class=root_module['ns3::RadioBearerInstance'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType [enumeration]
+    module.add_enum('BearerType', ['BEARER_TYPE_SRB1', 'BEARER_TYPE_SRB2', 'BEARER_TYPE_DRB'], outer_class=root_module['ns3::RadioBearerInstance'])
+    ## rlc-entity.h: ns3::RlcEntity [class]
+    module.add_class('RlcEntity', parent=root_module['ns3::Object'])
+    ## rrc-entity.h: ns3::RrcEntity [class]
+    module.add_class('RrcEntity', parent=root_module['ns3::Object'])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler [class]
+    module.add_class('SimplePacketScheduler', parent=root_module['ns3::PacketScheduler'])
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::IdealControlMessage', 'ns3::empty', 'ns3::DefaultDeleter<ns3::IdealControlMessage>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## ue-manager.h: ns3::UeManager [class]
+    module.add_class('UeManager', parent=root_module['ns3::Object'])
+    ## ue-record.h: ns3::UeRecord [class]
+    module.add_class('UeRecord', parent=root_module['ns3::Object'])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback [struct]
+    module.add_class('CqiFeedback', outer_class=root_module['ns3::UeRecord'])
+    ## amc-module.h: ns3::AmcModule [class]
+    module.add_class('AmcModule', parent=root_module['ns3::Object'])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters [class]
+    module.add_class('BearerQosParameters', parent=root_module['ns3::Object'])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType [enumeration]
+    module.add_enum('BearerQosType', ['BEARER_TYPE_GBR', 'BEARER_TYPE_NGBR'], outer_class=root_module['ns3::BearerQosParameters'])
+    ## channel-realization.h: ns3::ChannelRealization [class]
+    module.add_class('ChannelRealization', parent=root_module['ns3::Object'])
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel [class]
+    module.add_class('DiscreteTimeLossModel', parent=root_module['ns3::Object'])
+    ## ideal-control-messages.h: ns3::IdealControlMessage [class]
+    module.add_class('IdealControlMessage', parent=root_module['ns3::SimpleRefCount< ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> >'])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType [enumeration]
+    module.add_enum('MessageType', ['CQI_FEEDBACKS', 'ALLOCATION_MAP'], outer_class=root_module['ns3::IdealControlMessage'])
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel [class]
+    module.add_class('JakesFadingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## lte-mac-queue.h: ns3::LteMacQueue [class]
+    module.add_class('LteMacQueue', parent=root_module['ns3::Object'])
+    ## lte-phy.h: ns3::LtePhy [class]
+    module.add_class('LtePhy', parent=root_module['ns3::Object'])
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel [class]
+    module.add_class('LtePropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy [class]
+    module.add_class('LteSpectrumPhy', parent=root_module['ns3::SpectrumPhy'])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::State [enumeration]
+    module.add_enum('State', ['IDLE', 'TX', 'RX'], outer_class=root_module['ns3::LteSpectrumPhy'])
+    ## mac-entity.h: ns3::MacEntity [class]
+    module.add_class('MacEntity', parent=root_module['ns3::Object'])
+    ## path-loss-model.h: ns3::PathLossModel [class]
+    module.add_class('PathLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage [class]
+    module.add_class('PdcchMapIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::Direction [enumeration]
+    module.add_enum('Direction', ['DOWNLINK', 'UPLINK'], outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord [struct]
+    module.add_class('IdealPdcchRecord', outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
+    ## penetration-loss-model.h: ns3::PenetrationLossModel [class]
+    module.add_class('PenetrationLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel [class]
+    module.add_class('ShadowingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## ue-phy.h: ns3::UeLtePhy [class]
+    module.add_class('UeLtePhy', parent=root_module['ns3::LtePhy'])
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy [class]
+    module.add_class('UeLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
+    ## ue-mac-entity.h: ns3::UeMacEntity [class]
+    module.add_class('UeMacEntity', parent=root_module['ns3::MacEntity'])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage [class]
+    module.add_class('CqiIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback [struct]
+    module.add_class('CqiFeedback', outer_class=root_module['ns3::CqiIdealControlMessage'])
+    ## enb-phy.h: ns3::EnbLtePhy [class]
+    module.add_class('EnbLtePhy', parent=root_module['ns3::LtePhy'])
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy [class]
+    module.add_class('EnbLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
+    ## enb-mac-entity.h: ns3::EnbMacEntity [class]
+    module.add_class('EnbMacEntity', parent=root_module['ns3::MacEntity'])
+    ## lte-net-device.h: ns3::LteNetDevice [class]
+    module.add_class('LteNetDevice', parent=root_module['ns3::NetDevice'])
+    ## ue-net-device.h: ns3::UeNetDevice [class]
+    module.add_class('UeNetDevice', parent=root_module['ns3::LteNetDevice'])
+    ## enb-net-device.h: ns3::EnbNetDevice [class]
+    module.add_class('EnbNetDevice', parent=root_module['ns3::LteNetDevice'])
+    module.add_container('std::vector< ns3::UeRecord::CqiFeedback >', 'ns3::UeRecord::CqiFeedback', container_type='vector')
+    module.add_container('std::deque< ns3::LteMacQueue::QueueElement >', 'ns3::LteMacQueue::QueueElement', container_type='dequeue')
+    module.add_container('std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord >', 'ns3::PdcchMapIdealControlMessage::IdealPdcchRecord', container_type='list')
+    module.add_container('std::list< ns3::CqiIdealControlMessage::CqiFeedback >', 'ns3::CqiIdealControlMessage::CqiFeedback', container_type='list')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +191,1761 @@
     
 
 def register_methods(root_module):
+    register_Ns3LteHelper_methods(root_module, root_module['ns3::LteHelper'])
+    register_Ns3LteSpectrumValueHelper_methods(root_module, root_module['ns3::LteSpectrumValueHelper'])
+    register_Ns3LteMacHeader_methods(root_module, root_module['ns3::LteMacHeader'])
+    register_Ns3PacketScheduler_methods(root_module, root_module['ns3::PacketScheduler'])
+    register_Ns3RadioBearerInstance_methods(root_module, root_module['ns3::RadioBearerInstance'])
+    register_Ns3RlcEntity_methods(root_module, root_module['ns3::RlcEntity'])
+    register_Ns3RrcEntity_methods(root_module, root_module['ns3::RrcEntity'])
+    register_Ns3SimplePacketScheduler_methods(root_module, root_module['ns3::SimplePacketScheduler'])
+    register_Ns3UeManager_methods(root_module, root_module['ns3::UeManager'])
+    register_Ns3UeRecord_methods(root_module, root_module['ns3::UeRecord'])
+    register_Ns3UeRecordCqiFeedback_methods(root_module, root_module['ns3::UeRecord::CqiFeedback'])
+    register_Ns3AmcModule_methods(root_module, root_module['ns3::AmcModule'])
+    register_Ns3BearerQosParameters_methods(root_module, root_module['ns3::BearerQosParameters'])
+    register_Ns3ChannelRealization_methods(root_module, root_module['ns3::ChannelRealization'])
+    register_Ns3DiscreteTimeLossModel_methods(root_module, root_module['ns3::DiscreteTimeLossModel'])
+    register_Ns3IdealControlMessage_methods(root_module, root_module['ns3::IdealControlMessage'])
+    register_Ns3JakesFadingLossModel_methods(root_module, root_module['ns3::JakesFadingLossModel'])
+    register_Ns3LteMacQueue_methods(root_module, root_module['ns3::LteMacQueue'])
+    register_Ns3LtePhy_methods(root_module, root_module['ns3::LtePhy'])
+    register_Ns3LtePropagationLossModel_methods(root_module, root_module['ns3::LtePropagationLossModel'])
+    register_Ns3LteSpectrumPhy_methods(root_module, root_module['ns3::LteSpectrumPhy'])
+    register_Ns3MacEntity_methods(root_module, root_module['ns3::MacEntity'])
+    register_Ns3PathLossModel_methods(root_module, root_module['ns3::PathLossModel'])
+    register_Ns3PdcchMapIdealControlMessage_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage'])
+    register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage::IdealPdcchRecord'])
+    register_Ns3PenetrationLossModel_methods(root_module, root_module['ns3::PenetrationLossModel'])
+    register_Ns3ShadowingLossModel_methods(root_module, root_module['ns3::ShadowingLossModel'])
+    register_Ns3UeLtePhy_methods(root_module, root_module['ns3::UeLtePhy'])
+    register_Ns3UeLteSpectrumPhy_methods(root_module, root_module['ns3::UeLteSpectrumPhy'])
+    register_Ns3UeMacEntity_methods(root_module, root_module['ns3::UeMacEntity'])
+    register_Ns3CqiIdealControlMessage_methods(root_module, root_module['ns3::CqiIdealControlMessage'])
+    register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, root_module['ns3::CqiIdealControlMessage::CqiFeedback'])
+    register_Ns3EnbLtePhy_methods(root_module, root_module['ns3::EnbLtePhy'])
+    register_Ns3EnbLteSpectrumPhy_methods(root_module, root_module['ns3::EnbLteSpectrumPhy'])
+    register_Ns3EnbMacEntity_methods(root_module, root_module['ns3::EnbMacEntity'])
+    register_Ns3LteNetDevice_methods(root_module, root_module['ns3::LteNetDevice'])
+    register_Ns3UeNetDevice_methods(root_module, root_module['ns3::UeNetDevice'])
+    register_Ns3EnbNetDevice_methods(root_module, root_module['ns3::EnbNetDevice'])
+    return
+
+def register_Ns3LteHelper_methods(root_module, cls):
+    ## lte-helper.h: ns3::LteHelper::LteHelper(ns3::LteHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteHelper const &', 'arg0')])
+    ## lte-helper.h: ns3::LteHelper::LteHelper() [constructor]
+    cls.add_constructor([])
+    ## lte-helper.h: void ns3::LteHelper::AddDownlinkChannelRealization(ns3::Ptr<ns3::MobilityModel> enbMobility, ns3::Ptr<ns3::MobilityModel> ueMobility, ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('AddDownlinkChannelRealization', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel >', 'ueMobility'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## lte-helper.h: void ns3::LteHelper::AddMobility(ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::MobilityModel> m) [member function]
+    cls.add_method('AddMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::MobilityModel >', 'm')])
+    ## lte-helper.h: void ns3::LteHelper::EnableLogComponents() [member function]
+    cls.add_method('EnableLogComponents', 
+                   'void', 
+                   [])
+    ## lte-helper.h: ns3::NetDeviceContainer ns3::LteHelper::Install(ns3::NodeContainer c, ns3::LteHelper::NetDeviceType type) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c'), param('ns3::LteHelper::NetDeviceType', 'type')])
+    ## lte-helper.h: void ns3::LteHelper::RegisterUeToTheEnb(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('RegisterUeToTheEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    return
+
+def register_Ns3LteSpectrumValueHelper_methods(root_module, cls):
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper() [constructor]
+    cls.add_constructor([])
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper(ns3::LteSpectrumValueHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteSpectrumValueHelper const &', 'arg0')])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkNoisePowerSpectralDensity() [member function]
+    cls.add_method('CreateDownlinkNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
+    cls.add_method('CreateDownlinkTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkNoisePowerSpectralDensity() [member function]
+    cls.add_method('CreateUplinkNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
+    cls.add_method('CreateUplinkTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
+    return
+
+def register_Ns3LteMacHeader_methods(root_module, cls):
+    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader() [constructor]
+    cls.add_constructor([])
+    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader(ns3::LteMacHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteMacHeader const &', 'arg0')])
+    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Mac48Address', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-header.h: ns3::TypeId ns3::LteMacHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Mac48Address', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-header.h: static ns3::TypeId ns3::LteMacHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::SetDestination(ns3::Mac48Address destination) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'destination')])
+    ## lte-mac-header.h: void ns3::LteMacHeader::SetSource(ns3::Mac48Address source) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'source')])
+    return
+
+def register_Ns3PacketScheduler_methods(root_module, cls):
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::PacketScheduler const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PacketScheduler const &', 'arg0')])
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler() [constructor]
+    cls.add_constructor([])
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## packet-scheduler.h: void ns3::PacketScheduler::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## packet-scheduler.h: void ns3::PacketScheduler::DoRunPacketScheduler() [member function]
+    cls.add_method('DoRunPacketScheduler', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## packet-scheduler.h: ns3::Ptr<ns3::EnbNetDevice> ns3::PacketScheduler::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::EnbNetDevice >', 
+                   [])
+    ## packet-scheduler.h: ns3::Ptr<ns3::MacEntity> ns3::PacketScheduler::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::MacEntity >', 
+                   [])
+    ## packet-scheduler.h: static ns3::TypeId ns3::PacketScheduler::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## packet-scheduler.h: void ns3::PacketScheduler::RunPacketScheduler() [member function]
+    cls.add_method('RunPacketScheduler', 
+                   'void', 
+                   [])
+    ## packet-scheduler.h: void ns3::PacketScheduler::SetDevice(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## packet-scheduler.h: void ns3::PacketScheduler::SetMacEntity(ns3::Ptr<ns3::MacEntity> mac) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MacEntity >', 'mac')])
+    return
+
+def register_Ns3RadioBearerInstance_methods(root_module, cls):
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance(ns3::RadioBearerInstance const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RadioBearerInstance const &', 'arg0')])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance() [constructor]
+    cls.add_constructor([])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue(uint32_t availableByte) [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'availableByte')])
+    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection ns3::RadioBearerInstance::GetBearerDirection() const [member function]
+    cls.add_method('GetBearerDirection', 
+                   'ns3::RadioBearerInstance::BearerDirection', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType ns3::RadioBearerInstance::GetBearerType() const [member function]
+    cls.add_method('GetBearerType', 
+                   'ns3::RadioBearerInstance::BearerType', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::IpcsClassifierRecord * ns3::RadioBearerInstance::GetIpcsClassifierRecord() [member function]
+    cls.add_method('GetIpcsClassifierRecord', 
+                   'ns3::IpcsClassifierRecord *', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::BearerQosParameters> ns3::RadioBearerInstance::GetQosParameters() [member function]
+    cls.add_method('GetQosParameters', 
+                   'ns3::Ptr< ns3::BearerQosParameters >', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::LteMacQueue> ns3::RadioBearerInstance::GetQueue() const [member function]
+    cls.add_method('GetQueue', 
+                   'ns3::Ptr< ns3::LteMacQueue >', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::RlcEntity> ns3::RadioBearerInstance::GetRlcEntity() [member function]
+    cls.add_method('GetRlcEntity', 
+                   'ns3::Ptr< ns3::RlcEntity >', 
+                   [])
+    ## radio-bearer-instance.h: static ns3::TypeId ns3::RadioBearerInstance::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::HasPackets() const [member function]
+    cls.add_method('HasPackets', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerDirection(ns3::RadioBearerInstance::BearerDirection direction) [member function]
+    cls.add_method('SetBearerDirection', 
+                   'void', 
+                   [param('ns3::RadioBearerInstance::BearerDirection', 'direction')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerType(ns3::RadioBearerInstance::BearerType type) [member function]
+    cls.add_method('SetBearerType', 
+                   'void', 
+                   [param('ns3::RadioBearerInstance::BearerType', 'type')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetIpcsClassifierRecord(ns3::IpcsClassifierRecord * c) [member function]
+    cls.add_method('SetIpcsClassifierRecord', 
+                   'void', 
+                   [param('ns3::IpcsClassifierRecord *', 'c')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetQosParameters(ns3::Ptr<ns3::BearerQosParameters> qosParameters) [member function]
+    cls.add_method('SetQosParameters', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::BearerQosParameters >', 'qosParameters')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetRlcEntity(ns3::Ptr<ns3::RlcEntity> rlc) [member function]
+    cls.add_method('SetRlcEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RlcEntity >', 'rlc')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RlcEntity_methods(root_module, cls):
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::RlcEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RlcEntity const &', 'arg0')])
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity() [constructor]
+    cls.add_constructor([])
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## rlc-entity.h: ns3::Ptr<ns3::Packet> ns3::RlcEntity::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## rlc-entity.h: void ns3::RlcEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rlc-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::RlcEntity::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## rlc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RlcEntity::GetRadioBearer() [member function]
+    cls.add_method('GetRadioBearer', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [])
+    ## rlc-entity.h: static ns3::TypeId ns3::RlcEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rlc-entity.h: void ns3::RlcEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## rlc-entity.h: void ns3::RlcEntity::SetRadioBearer(ns3::Ptr<ns3::RadioBearerInstance> b) [member function]
+    cls.add_method('SetRadioBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'b')])
+    return
+
+def register_Ns3RrcEntity_methods(root_module, cls):
+    ## rrc-entity.h: ns3::RrcEntity::RrcEntity(ns3::RrcEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RrcEntity const &', 'arg0')])
+    ## rrc-entity.h: ns3::RrcEntity::RrcEntity() [constructor]
+    cls.add_constructor([])
+    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddDownlinkGbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddDownlinkNgbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddUplinkGbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddUplinkNgbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::Classify(ns3::Ptr<ns3::Packet> p) const [member function]
+    cls.add_method('Classify', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   is_const=True)
+    ## rrc-entity.h: void ns3::RrcEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::GetDefaultBearer() [member function]
+    cls.add_method('GetDefaultBearer', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [])
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkGbrBearers() const [member function]
+    cls.add_method('GetDownlinkGbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkNgbrBearers() const [member function]
+    cls.add_method('GetDownlinkNgbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: static ns3::TypeId ns3::RrcEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkGbrBearers() const [member function]
+    cls.add_method('GetUplinkGbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkNgbrBearers() const [member function]
+    cls.add_method('GetUplinkNgbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SimplePacketScheduler_methods(root_module, cls):
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::SimplePacketScheduler const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SimplePacketScheduler const &', 'arg0')])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler() [constructor]
+    cls.add_constructor([])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## simple-packet-scheduler.h: void ns3::SimplePacketScheduler::DoRunPacketScheduler() [member function]
+    cls.add_method('DoRunPacketScheduler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## simple-packet-scheduler.h: static ns3::TypeId ns3::SimplePacketScheduler::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UeManager_methods(root_module, cls):
+    ## ue-manager.h: ns3::UeManager::UeManager(ns3::UeManager const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeManager const &', 'arg0')])
+    ## ue-manager.h: ns3::UeManager::UeManager() [constructor]
+    cls.add_constructor([])
+    ## ue-manager.h: void ns3::UeManager::CreateUeRecord(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('CreateUeRecord', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
+    cls.add_method('DeleteUeRecord', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
+    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Mac48Address const & macAddress) [member function]
+    cls.add_method('DeleteUeRecord', 
+                   'void', 
+                   [param('ns3::Mac48Address const &', 'macAddress')])
+    ## ue-manager.h: uint32_t ns3::UeManager::GetNRegisteredUes() const [member function]
+    cls.add_method('GetNRegisteredUes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
+    cls.add_method('GetUeRecord', 
+                   'ns3::Ptr< ns3::UeRecord >', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
+    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Mac48Address const macAddress) [member function]
+    cls.add_method('GetUeRecord', 
+                   'ns3::Ptr< ns3::UeRecord >', 
+                   [param('ns3::Mac48Address const', 'macAddress')])
+    ## ue-manager.h: std::vector<ns3::Ptr<ns3::UeRecord>,std::allocator<ns3::Ptr<ns3::UeRecord> > > * ns3::UeManager::GetUeRecords() [member function]
+    cls.add_method('GetUeRecords', 
+                   'std::vector< ns3::Ptr< ns3::UeRecord > > *', 
+                   [])
+    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Ptr<ns3::UeNetDevice> ue) const [member function]
+    cls.add_method('IsRegistered', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')], 
+                   is_const=True)
+    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Mac48Address const & macAddress) const [member function]
+    cls.add_method('IsRegistered', 
+                   'bool', 
+                   [param('ns3::Mac48Address const &', 'macAddress')], 
+                   is_const=True)
+    return
+
+def register_Ns3UeRecord_methods(root_module, cls):
+    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::UeRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeRecord const &', 'arg0')])
+    ## ue-record.h: ns3::UeRecord::UeRecord() [constructor]
+    cls.add_constructor([])
+    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::Ptr<ns3::NetDevice> ue, ns3::Ptr<ns3::NetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'ue'), param('ns3::Ptr< ns3::NetDevice >', 'enb')])
+    ## ue-record.h: std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > ns3::UeRecord::GetCqiFeedbacks() [member function]
+    cls.add_method('GetCqiFeedbacks', 
+                   'std::vector< ns3::UeRecord::CqiFeedback >', 
+                   [])
+    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetEnb() [member function]
+    cls.add_method('GetEnb', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetUe() [member function]
+    cls.add_method('GetUe', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## ue-record.h: void ns3::UeRecord::SetCqiFeedbacks(std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > cqiFeedbacks) [member function]
+    cls.add_method('SetCqiFeedbacks', 
+                   'void', 
+                   [param('std::vector< ns3::UeRecord::CqiFeedback >', 'cqiFeedbacks')])
+    ## ue-record.h: void ns3::UeRecord::SetEnb(ns3::Ptr<ns3::NetDevice> enb) [member function]
+    cls.add_method('SetEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'enb')])
+    ## ue-record.h: void ns3::UeRecord::SetUe(ns3::Ptr<ns3::NetDevice> ue) [member function]
+    cls.add_method('SetUe', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'ue')])
+    return
+
+def register_Ns3UeRecordCqiFeedback_methods(root_module, cls):
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback() [constructor]
+    cls.add_constructor([])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback(ns3::UeRecord::CqiFeedback const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeRecord::CqiFeedback const &', 'arg0')])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_cqi [variable]
+    cls.add_instance_attribute('m_cqi', 'int', is_const=False)
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_subChannelId [variable]
+    cls.add_instance_attribute('m_subChannelId', 'int', is_const=False)
+    return
+
+def register_Ns3AmcModule_methods(root_module, cls):
+    ## amc-module.h: ns3::AmcModule::AmcModule(ns3::AmcModule const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AmcModule const &', 'arg0')])
+    ## amc-module.h: ns3::AmcModule::AmcModule() [constructor]
+    cls.add_constructor([])
+    ## amc-module.h: std::vector<int, std::allocator<int> > ns3::AmcModule::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'std::vector< int >', 
+                   [param('std::vector< double >', 'sinr')])
+    ## amc-module.h: int ns3::AmcModule::GetMcsFromCqi(int cqi) [member function]
+    cls.add_method('GetMcsFromCqi', 
+                   'int', 
+                   [param('int', 'cqi')])
+    ## amc-module.h: double ns3::AmcModule::GetSpectralEfficiencyFromCqi(int cqi) [member function]
+    cls.add_method('GetSpectralEfficiencyFromCqi', 
+                   'double', 
+                   [param('int', 'cqi')])
+    ## amc-module.h: int ns3::AmcModule::GetTbSizeFromMcs(int mcs) [member function]
+    cls.add_method('GetTbSizeFromMcs', 
+                   'int', 
+                   [param('int', 'mcs')])
+    ## amc-module.h: static ns3::TypeId ns3::AmcModule::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## amc-module.h: void ns3::AmcModule::Initialize() [member function]
+    cls.add_method('Initialize', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3BearerQosParameters_methods(root_module, cls):
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(ns3::BearerQosParameters const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BearerQosParameters const &', 'arg0')])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters() [constructor]
+    cls.add_constructor([])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, double gbr, double mbr) [constructor]
+    cls.add_constructor([param('int', 'qci'), param('double', 'gbr'), param('double', 'mbr')])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, bool apec, bool apev, double gbr, double mbr) [constructor]
+    cls.add_constructor([param('int', 'qci'), param('bool', 'apec'), param('bool', 'apev'), param('double', 'gbr'), param('double', 'mbr')])
+    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionCapability() const [member function]
+    cls.add_method('GetArpPreEmptionCapability', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionVulnerability() const [member function]
+    cls.add_method('GetArpPreEmptionVulnerability', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType ns3::BearerQosParameters::GetBearerQosType() const [member function]
+    cls.add_method('GetBearerQosType', 
+                   'ns3::BearerQosParameters::BearerQosType', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetGbr() const [member function]
+    cls.add_method('GetGbr', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMaxDelay() const [member function]
+    cls.add_method('GetMaxDelay', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMbr() const [member function]
+    cls.add_method('GetMbr', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: int ns3::BearerQosParameters::GetQci() const [member function]
+    cls.add_method('GetQci', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionCapability(bool apec) [member function]
+    cls.add_method('SetArpPreEmptionCapability', 
+                   'void', 
+                   [param('bool', 'apec')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionVulnerability(bool apev) [member function]
+    cls.add_method('SetArpPreEmptionVulnerability', 
+                   'void', 
+                   [param('bool', 'apev')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetBearerQosType(ns3::BearerQosParameters::BearerQosType QosType) [member function]
+    cls.add_method('SetBearerQosType', 
+                   'void', 
+                   [param('ns3::BearerQosParameters::BearerQosType', 'QosType')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetGbr(double gbr) [member function]
+    cls.add_method('SetGbr', 
+                   'void', 
+                   [param('double', 'gbr')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMaxDelay(double targetDelay) [member function]
+    cls.add_method('SetMaxDelay', 
+                   'void', 
+                   [param('double', 'targetDelay')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMbr(double mbr) [member function]
+    cls.add_method('SetMbr', 
+                   'void', 
+                   [param('double', 'mbr')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetQci(int qci) [member function]
+    cls.add_method('SetQci', 
+                   'void', 
+                   [param('int', 'qci')])
+    return
+
+def register_Ns3ChannelRealization_methods(root_module, cls):
+    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization(ns3::ChannelRealization const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ChannelRealization const &', 'arg0')])
+    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization() [constructor]
+    cls.add_constructor([])
+    ## channel-realization.h: ns3::Ptr<ns3::JakesFadingLossModel> ns3::ChannelRealization::GetJakesFadingLossModel() [member function]
+    cls.add_method('GetJakesFadingLossModel', 
+                   'ns3::Ptr< ns3::JakesFadingLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::PathLossModel> ns3::ChannelRealization::GetPathLossModel() [member function]
+    cls.add_method('GetPathLossModel', 
+                   'ns3::Ptr< ns3::PathLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::PenetrationLossModel> ns3::ChannelRealization::GetPenetrationLossModel() [member function]
+    cls.add_method('GetPenetrationLossModel', 
+                   'ns3::Ptr< ns3::PenetrationLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::ShadowingLossModel> ns3::ChannelRealization::GetShadowingLossModel() [member function]
+    cls.add_method('GetShadowingLossModel', 
+                   'ns3::Ptr< ns3::ShadowingLossModel >', 
+                   [])
+    ## channel-realization.h: static ns3::TypeId ns3::ChannelRealization::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## channel-realization.h: void ns3::ChannelRealization::SetJakesFadingLossModel(ns3::Ptr<ns3::JakesFadingLossModel> l) [member function]
+    cls.add_method('SetJakesFadingLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::JakesFadingLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetPathLossModel(ns3::Ptr<ns3::PathLossModel> l) [member function]
+    cls.add_method('SetPathLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PathLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetPenetrationLossModel(ns3::Ptr<ns3::PenetrationLossModel> l) [member function]
+    cls.add_method('SetPenetrationLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PenetrationLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetShadowingLossModel(ns3::Ptr<ns3::ShadowingLossModel> l) [member function]
+    cls.add_method('SetShadowingLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::ShadowingLossModel >', 'l')])
+    return
+
+def register_Ns3DiscreteTimeLossModel_methods(root_module, cls):
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel(ns3::DiscreteTimeLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DiscreteTimeLossModel const &', 'arg0')])
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel() [constructor]
+    cls.add_constructor([])
+    ## discrete-time-loss-model.h: ns3::Time ns3::DiscreteTimeLossModel::GetLastUpdate() [member function]
+    cls.add_method('GetLastUpdate', 
+                   'ns3::Time', 
+                   [])
+    ## discrete-time-loss-model.h: double ns3::DiscreteTimeLossModel::GetSamplingPeriod() [member function]
+    cls.add_method('GetSamplingPeriod', 
+                   'double', 
+                   [])
+    ## discrete-time-loss-model.h: static ns3::TypeId ns3::DiscreteTimeLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## discrete-time-loss-model.h: bool ns3::DiscreteTimeLossModel::NeedForUpdate() [member function]
+    cls.add_method('NeedForUpdate', 
+                   'bool', 
+                   [])
+    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetLastUpdate() [member function]
+    cls.add_method('SetLastUpdate', 
+                   'void', 
+                   [])
+    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetSamplingPeriod(double sp) [member function]
+    cls.add_method('SetSamplingPeriod', 
+                   'void', 
+                   [param('double', 'sp')])
+    return
+
+def register_Ns3IdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage(ns3::IdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::IdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetDestinationDevice() [member function]
+    cls.add_method('GetDestinationDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType ns3::IdealControlMessage::GetMessageType() [member function]
+    cls.add_method('GetMessageType', 
+                   'ns3::IdealControlMessage::MessageType', 
+                   [])
+    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetSourceDevice() [member function]
+    cls.add_method('GetSourceDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetDestinationDevice(ns3::Ptr<ns3::LteNetDevice> dst) [member function]
+    cls.add_method('SetDestinationDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'dst')])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetMessageType(ns3::IdealControlMessage::MessageType type) [member function]
+    cls.add_method('SetMessageType', 
+                   'void', 
+                   [param('ns3::IdealControlMessage::MessageType', 'type')])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetSourceDevice(ns3::Ptr<ns3::LteNetDevice> src) [member function]
+    cls.add_method('SetSourceDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'src')])
+    return
+
+def register_Ns3JakesFadingLossModel_methods(root_module, cls):
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel(ns3::JakesFadingLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::JakesFadingLossModel const &', 'arg0')])
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel() [constructor]
+    cls.add_constructor([])
+    ## jakes-fading-loss-model.h: ns3::Ptr<ns3::LtePhy> ns3::JakesFadingLossModel::GetPhy() [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::LtePhy >', 
+                   [])
+    ## jakes-fading-loss-model.h: static ns3::TypeId ns3::JakesFadingLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## jakes-fading-loss-model.h: double ns3::JakesFadingLossModel::GetValue(int subChannel) [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [param('int', 'subChannel')])
+    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetValue() [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3LteMacQueue_methods(root_module, cls):
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(ns3::LteMacQueue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteMacQueue const &', 'arg0')])
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue() [constructor]
+    cls.add_constructor([])
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(uint32_t maxSize) [constructor]
+    cls.add_constructor([param('uint32_t', 'maxSize')])
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue(uint32_t availableByte) [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'availableByte')])
+    ## lte-mac-queue.h: bool ns3::LteMacQueue::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetMaxSize() const [member function]
+    cls.add_method('GetMaxSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetNBytes() const [member function]
+    cls.add_method('GetNBytes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: std::deque<ns3::LteMacQueue::QueueElement, std::allocator<ns3::LteMacQueue::QueueElement> > const & ns3::LteMacQueue::GetPacketQueue() const [member function]
+    cls.add_method('GetPacketQueue', 
+                   'std::deque< ns3::LteMacQueue::QueueElement > const &', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetQueueLengthWithMACOverhead() [member function]
+    cls.add_method('GetQueueLengthWithMACOverhead', 
+                   'uint32_t', 
+                   [])
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetSize() const [member function]
+    cls.add_method('GetSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: static ns3::TypeId ns3::LteMacQueue::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-mac-queue.h: bool ns3::LteMacQueue::IsEmpty() const [member function]
+    cls.add_method('IsEmpty', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Peek() const [member function]
+    cls.add_method('Peek', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: void ns3::LteMacQueue::SetMaxSize(uint32_t maxSize) [member function]
+    cls.add_method('SetMaxSize', 
+                   'void', 
+                   [param('uint32_t', 'maxSize')])
+    return
+
+def register_Ns3LtePhy_methods(root_module, cls):
+    ## lte-phy.h: ns3::LtePhy::LtePhy(ns3::LtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LtePhy const &', 'arg0')])
+    ## lte-phy.h: ns3::LtePhy::LtePhy() [constructor]
+    cls.add_constructor([])
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoSetDownlinkSubChannels() [member function]
+    cls.add_method('DoSetDownlinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoSetUplinkSubChannels() [member function]
+    cls.add_method('DoSetUplinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: ns3::Ptr<ns3::LteNetDevice> ns3::LtePhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetDownlinkChannel() [member function]
+    cls.add_method('GetDownlinkChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetDownlinkSpectrumPhy() [member function]
+    cls.add_method('GetDownlinkSpectrumPhy', 
+                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
+                   [])
+    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetDownlinkSubChannels() [member function]
+    cls.add_method('GetDownlinkSubChannels', 
+                   'std::vector< int >', 
+                   [])
+    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrFrames() const [member function]
+    cls.add_method('GetNrFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrSubFrames() const [member function]
+    cls.add_method('GetNrSubFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: double ns3::LtePhy::GetTti() const [member function]
+    cls.add_method('GetTti', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: double ns3::LtePhy::GetTxPower() [member function]
+    cls.add_method('GetTxPower', 
+                   'double', 
+                   [])
+    ## lte-phy.h: static ns3::TypeId ns3::LtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetUplinkChannel() [member function]
+    cls.add_method('GetUplinkChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetUplinkSpectrumPhy() [member function]
+    cls.add_method('GetUplinkSpectrumPhy', 
+                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
+                   [])
+    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetUplinkSubChannels() [member function]
+    cls.add_method('GetUplinkSubChannels', 
+                   'std::vector< int >', 
+                   [])
+    ## lte-phy.h: void ns3::LtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: bool ns3::LtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetDownlinkChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
+    cls.add_method('SetDownlinkSpectrumPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetDownlinkSubChannels', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    ## lte-phy.h: void ns3::LtePhy::SetNrFrames(uint32_t nrFrames) [member function]
+    cls.add_method('SetNrFrames', 
+                   'void', 
+                   [param('uint32_t', 'nrFrames')])
+    ## lte-phy.h: void ns3::LtePhy::SetNrSubFrames(uint32_t nrSubFrames) [member function]
+    cls.add_method('SetNrSubFrames', 
+                   'void', 
+                   [param('uint32_t', 'nrSubFrames')])
+    ## lte-phy.h: void ns3::LtePhy::SetTti(double tti) [member function]
+    cls.add_method('SetTti', 
+                   'void', 
+                   [param('double', 'tti')])
+    ## lte-phy.h: void ns3::LtePhy::SetTxPower(double pw) [member function]
+    cls.add_method('SetTxPower', 
+                   'void', 
+                   [param('double', 'pw')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetUplinkChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
+    cls.add_method('SetUplinkSpectrumPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetUplinkSubChannels', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    return
+
+def register_Ns3LtePropagationLossModel_methods(root_module, cls):
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel(ns3::LtePropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LtePropagationLossModel const &', 'arg0')])
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## lte-propagation-loss-model.h: void ns3::LtePropagationLossModel::CreateChannelRealization(ns3::Ptr<const ns3::MobilityModel> enbMobility, ns3::Ptr<const ns3::MobilityModel> ueMobility) [member function]
+    cls.add_method('CreateChannelRealization', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel const >', 'ueMobility')])
+    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::ChannelRealization> ns3::LtePropagationLossModel::GetChannelRealization(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetChannelRealization', 
+                   'ns3::Ptr< ns3::ChannelRealization >', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True)
+    ## lte-propagation-loss-model.h: static ns3::TypeId ns3::LtePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LteSpectrumPhy_methods(root_module, cls):
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy(ns3::LteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteSpectrumPhy const &', 'arg0')])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LteSpectrumPhy::GetChannel() [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetMobility() [member function]
+    cls.add_method('GetMobility', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumValue const> ns3::LteSpectrumPhy::GetNoisePowerSpectralDensity() [member function]
+    cls.add_method('GetNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue const >', 
+                   [])
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::LteSpectrumPhy::GetRxSpectrumModel() const [member function]
+    cls.add_method('GetRxSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::SpectrumType ns3::LteSpectrumPhy::GetSpectrumType() [member function]
+    cls.add_method('GetSpectrumType', 
+                   'ns3::SpectrumType', 
+                   [])
+    ## lte-spectrum-phy.h: static ns3::TypeId ns3::LteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'd')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
+    cls.add_method('SetMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'm')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> noisePsd) [member function]
+    cls.add_method('SetNoisePowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndErrorCallback(ns3::PhyMacRxEndErrorCallback c) [member function]
+    cls.add_method('SetPhyMacRxEndErrorCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxEndErrorCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndOkCallback(ns3::PhyMacRxEndOkCallback c) [member function]
+    cls.add_method('SetPhyMacRxEndOkCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxEndOkCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxStartCallback(ns3::PhyMacRxStartCallback c) [member function]
+    cls.add_method('SetPhyMacRxStartCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxStartCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacTxEndCallback(ns3::PhyMacTxEndCallback c) [member function]
+    cls.add_method('SetPhyMacTxEndCallback', 
+                   'void', 
+                   [param('ns3::PhyMacTxEndCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetState(ns3::LteSpectrumPhy::State newState) [member function]
+    cls.add_method('SetState', 
+                   'void', 
+                   [param('ns3::LteSpectrumPhy::State', 'newState')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> pb, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
+    cls.add_method('StartRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: bool ns3::LteSpectrumPhy::StartTx(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('StartTx', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::EndRx() [member function]
+    cls.add_method('EndRx', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3MacEntity_methods(root_module, cls):
+    ## mac-entity.h: ns3::MacEntity::MacEntity(ns3::MacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::MacEntity const &', 'arg0')])
+    ## mac-entity.h: ns3::MacEntity::MacEntity() [constructor]
+    cls.add_constructor([])
+    ## mac-entity.h: void ns3::MacEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## mac-entity.h: ns3::Ptr<ns3::AmcModule> ns3::MacEntity::GetAmcModule() const [member function]
+    cls.add_method('GetAmcModule', 
+                   'ns3::Ptr< ns3::AmcModule >', 
+                   [], 
+                   is_const=True)
+    ## mac-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::MacEntity::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## mac-entity.h: static ns3::TypeId ns3::MacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## mac-entity.h: void ns3::MacEntity::SetAmcModule(ns3::Ptr<ns3::AmcModule> amcModule) [member function]
+    cls.add_method('SetAmcModule', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::AmcModule >', 'amcModule')])
+    ## mac-entity.h: void ns3::MacEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    return
+
+def register_Ns3PathLossModel_methods(root_module, cls):
+    ## path-loss-model.h: ns3::PathLossModel::PathLossModel(ns3::PathLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PathLossModel const &', 'arg0')])
+    ## path-loss-model.h: ns3::PathLossModel::PathLossModel() [constructor]
+    cls.add_constructor([])
+    ## path-loss-model.h: static ns3::TypeId ns3::PathLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## path-loss-model.h: double ns3::PathLossModel::GetValue(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')])
+    ## path-loss-model.h: void ns3::PathLossModel::SetValue(double pl) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'pl')])
+    return
+
+def register_Ns3PdcchMapIdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage(ns3::PdcchMapIdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: void ns3::PdcchMapIdealControlMessage::AddNewRecord(ns3::PdcchMapIdealControlMessage::Direction direction, int subChannel, ns3::Ptr<ns3::LteNetDevice> ue, double mcs) [member function]
+    cls.add_method('AddNewRecord', 
+                   'void', 
+                   [param('ns3::PdcchMapIdealControlMessage::Direction', 'direction'), param('int', 'subChannel'), param('ns3::Ptr< ns3::LteNetDevice >', 'ue'), param('double', 'mcs')])
+    ## ideal-control-messages.h: std::list<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord,std::allocator<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord> > * ns3::PdcchMapIdealControlMessage::GetMessage() [member function]
+    cls.add_method('GetMessage', 
+                   'std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord > *', 
+                   [])
+    return
+
+def register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord(ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_direction [variable]
+    cls.add_instance_attribute('m_direction', 'ns3::PdcchMapIdealControlMessage::Direction', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_idSubChannel [variable]
+    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_mcsIndex [variable]
+    cls.add_instance_attribute('m_mcsIndex', 'double', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_ue [variable]
+    cls.add_instance_attribute('m_ue', 'ns3::Ptr< ns3::LteNetDevice >', is_const=False)
+    return
+
+def register_Ns3PenetrationLossModel_methods(root_module, cls):
+    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel(ns3::PenetrationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PenetrationLossModel const &', 'arg0')])
+    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel() [constructor]
+    cls.add_constructor([])
+    ## penetration-loss-model.h: static ns3::TypeId ns3::PenetrationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## penetration-loss-model.h: double ns3::PenetrationLossModel::GetValue() [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [])
+    ## penetration-loss-model.h: void ns3::PenetrationLossModel::SetValue(double pnl) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'pnl')])
+    return
+
+def register_Ns3ShadowingLossModel_methods(root_module, cls):
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(ns3::ShadowingLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ShadowingLossModel const &', 'arg0')])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel() [constructor]
+    cls.add_constructor([])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(double mu, double sigma, double samplingPeriod) [constructor]
+    cls.add_constructor([param('double', 'mu'), param('double', 'sigma'), param('double', 'samplingPeriod')])
+    ## shadowing-loss-model.h: static ns3::TypeId ns3::ShadowingLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## shadowing-loss-model.h: double ns3::ShadowingLossModel::GetValue() [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [])
+    ## shadowing-loss-model.h: void ns3::ShadowingLossModel::SetValue(double sh) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'sh')])
+    return
+
+def register_Ns3UeLtePhy_methods(root_module, cls):
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::UeLtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeLtePhy const &', 'arg0')])
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy() [constructor]
+    cls.add_constructor([])
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## ue-phy.h: void ns3::UeLtePhy::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'void', 
+                   [param('std::vector< double >', 'sinr')])
+    ## ue-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::UeLtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::DoSetUplinkSubChannels() [member function]
+    cls.add_method('DoSetUplinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForReception() [member function]
+    cls.add_method('GetSubChannelsForReception', 
+                   'std::vector< int >', 
+                   [])
+    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForTransmission() [member function]
+    cls.add_method('GetSubChannelsForTransmission', 
+                   'std::vector< int >', 
+                   [])
+    ## ue-phy.h: static ns3::TypeId ns3::UeLtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ue-phy.h: void ns3::UeLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## ue-phy.h: bool ns3::UeLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForReception(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetSubChannelsForReception', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForTransmission(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetSubChannelsForTransmission', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    return
+
+def register_Ns3UeLteSpectrumPhy_methods(root_module, cls):
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy(ns3::UeLteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeLteSpectrumPhy const &', 'arg0')])
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## ue-lte-spectrum-phy.h: void ns3::UeLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_virtual=True)
+    ## ue-lte-spectrum-phy.h: static ns3::TypeId ns3::UeLteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UeMacEntity_methods(root_module, cls):
+    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity(ns3::UeMacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeMacEntity const &', 'arg0')])
+    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity() [constructor]
+    cls.add_constructor([])
+    ## ue-mac-entity.h: ns3::Ptr<ns3::CqiIdealControlMessage> ns3::UeMacEntity::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'ns3::Ptr< ns3::CqiIdealControlMessage >', 
+                   [param('std::vector< double >', 'sinr')])
+    ## ue-mac-entity.h: static ns3::TypeId ns3::UeMacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3CqiIdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage(ns3::CqiIdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CqiIdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: void ns3::CqiIdealControlMessage::AddNewRecord(int subChannel, double cqi) [member function]
+    cls.add_method('AddNewRecord', 
+                   'void', 
+                   [param('int', 'subChannel'), param('double', 'cqi')])
+    ## ideal-control-messages.h: std::list<ns3::CqiIdealControlMessage::CqiFeedback,std::allocator<ns3::CqiIdealControlMessage::CqiFeedback> > * ns3::CqiIdealControlMessage::GetMessage() [member function]
+    cls.add_method('GetMessage', 
+                   'std::list< ns3::CqiIdealControlMessage::CqiFeedback > *', 
+                   [])
+    return
+
+def register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback(ns3::CqiIdealControlMessage::CqiFeedback const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CqiIdealControlMessage::CqiFeedback const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_cqi [variable]
+    cls.add_instance_attribute('m_cqi', 'double', is_const=False)
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_idSubChannel [variable]
+    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
+    return
+
+def register_Ns3EnbLtePhy_methods(root_module, cls):
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::EnbLtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbLtePhy const &', 'arg0')])
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy() [constructor]
+    cls.add_constructor([])
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## enb-phy.h: void ns3::EnbLtePhy::CalcChannelQualityForUe(std::vector<double, std::allocator<double> > sinr, ns3::Ptr<ns3::LteSpectrumPhy> ue) [member function]
+    cls.add_method('CalcChannelQualityForUe', 
+                   'void', 
+                   [param('std::vector< double >', 'sinr'), param('ns3::Ptr< ns3::LteSpectrumPhy >', 'ue')])
+    ## enb-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::EnbLtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::DoSetDownlinkSubChannels() [member function]
+    cls.add_method('DoSetDownlinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::EndFrame() [member function]
+    cls.add_method('EndFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: void ns3::EnbLtePhy::EndSubFrame() [member function]
+    cls.add_method('EndSubFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: static ns3::TypeId ns3::EnbLtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## enb-phy.h: bool ns3::EnbLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::StartFrame() [member function]
+    cls.add_method('StartFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: void ns3::EnbLtePhy::StartSubFrame() [member function]
+    cls.add_method('StartSubFrame', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3EnbLteSpectrumPhy_methods(root_module, cls):
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy(ns3::EnbLteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbLteSpectrumPhy const &', 'arg0')])
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## enb-lte-spectrum-phy.h: void ns3::EnbLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_virtual=True)
+    ## enb-lte-spectrum-phy.h: static ns3::TypeId ns3::EnbLteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3EnbMacEntity_methods(root_module, cls):
+    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity(ns3::EnbMacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbMacEntity const &', 'arg0')])
+    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity() [constructor]
+    cls.add_constructor([])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetDownlinkPacketScheduler() [member function]
+    cls.add_method('GetDownlinkPacketScheduler', 
+                   'ns3::Ptr< ns3::PacketScheduler >', 
+                   [])
+    ## enb-mac-entity.h: static ns3::TypeId ns3::EnbMacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetUplinkPacketScheduler() [member function]
+    cls.add_method('GetUplinkPacketScheduler', 
+                   'ns3::Ptr< ns3::PacketScheduler >', 
+                   [])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::ReceiveCqiIdealControlMessage(ns3::Ptr<ns3::CqiIdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveCqiIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::CqiIdealControlMessage >', 'msg')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SendPdcchMapIdealControlMessage(ns3::Ptr<ns3::PdcchMapIdealControlMessage> msg) [member function]
+    cls.add_method('SendPdcchMapIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PdcchMapIdealControlMessage >', 'msg')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetDownlinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
+    cls.add_method('SetDownlinkPacketScheduler', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetUplinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
+    cls.add_method('SetUplinkPacketScheduler', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
+    return
+
+def register_Ns3LteNetDevice_methods(root_module, cls):
+    ## lte-net-device.h: static ns3::TypeId ns3::LteNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-net-device.h: ns3::LteNetDevice::LteNetDevice() [constructor]
+    cls.add_constructor([])
+    ## lte-net-device.h: void ns3::LteNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPhyMacTxStartCallback(ns3::PhyMacTxStartCallback c) [member function]
+    cls.add_method('SetPhyMacTxStartCallback', 
+                   'void', 
+                   [param('ns3::PhyMacTxStartCallback', 'c')])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## lte-net-device.h: ns3::Ptr<ns3::LtePhy> ns3::LteNetDevice::GetPhy() const [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::LtePhy >', 
+                   [], 
+                   is_const=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetRrcEntity(ns3::Ptr<ns3::RrcEntity> rrc) [member function]
+    cls.add_method('SetRrcEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RrcEntity >', 'rrc')])
+    ## lte-net-device.h: ns3::Ptr<ns3::RrcEntity> ns3::LteNetDevice::GetRrcEntity() [member function]
+    cls.add_method('GetRrcEntity', 
+                   'ns3::Ptr< ns3::RrcEntity >', 
+                   [])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## lte-net-device.h: uint32_t ns3::LteNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Ptr<ns3::Channel> ns3::LteNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## lte-net-device.h: uint16_t ns3::LteNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Ptr<ns3::Node> ns3::LteNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv4Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Receive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')])
+    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest')])
+    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPacketToSend(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SetPacketToSend', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')])
+    ## lte-net-device.h: ns3::Ptr<ns3::PacketBurst> ns3::LteNetDevice::GetPacketToSend() [member function]
+    cls.add_method('GetPacketToSend', 
+                   'ns3::Ptr< ns3::PacketBurst >', 
+                   [])
+    ## lte-net-device.h: void ns3::LteNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3UeNetDevice_methods(root_module, cls):
+    ## ue-net-device.h: static ns3::TypeId ns3::UeNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice() [constructor]
+    cls.add_constructor([])
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::EnbNetDevice> targetEnb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::EnbNetDevice >', 'targetEnb')])
+    ## ue-net-device.h: void ns3::UeNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::SetMacEntity(ns3::Ptr<ns3::UeMacEntity> m) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeMacEntity >', 'm')])
+    ## ue-net-device.h: ns3::Ptr<ns3::UeMacEntity> ns3::UeNetDevice::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::UeMacEntity >', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::InitUeNetDevice() [member function]
+    cls.add_method('InitUeNetDevice', 
+                   'void', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::SetTargetEnb(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('SetTargetEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## ue-net-device.h: ns3::Ptr<ns3::EnbNetDevice> ns3::UeNetDevice::GetTargetEnb() [member function]
+    cls.add_method('GetTargetEnb', 
+                   'ns3::Ptr< ns3::EnbNetDevice >', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: bool ns3::UeNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_virtual=True)
+    ## ue-net-device.h: bool ns3::UeNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   visibility='private', is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnbNetDevice_methods(root_module, cls):
+    ## enb-net-device.h: static ns3::TypeId ns3::EnbNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice() [constructor]
+    cls.add_constructor([])
+    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## enb-net-device.h: void ns3::EnbNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::InitEnbNetDevice() [member function]
+    cls.add_method('InitEnbNetDevice', 
+                   'void', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::SetUeManager(ns3::Ptr<ns3::UeManager> m) [member function]
+    cls.add_method('SetUeManager', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeManager >', 'm')])
+    ## enb-net-device.h: ns3::Ptr<ns3::UeManager> ns3::EnbNetDevice::GetUeManager() [member function]
+    cls.add_method('GetUeManager', 
+                   'ns3::Ptr< ns3::UeManager >', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::SetMacEntity(ns3::Ptr<ns3::EnbMacEntity> m) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbMacEntity >', 'm')])
+    ## enb-net-device.h: ns3::Ptr<ns3::EnbMacEntity> ns3::EnbNetDevice::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::EnbMacEntity >', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: bool ns3::EnbNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::SendIdealPdcchMessage() [member function]
+    cls.add_method('SendIdealPdcchMessage', 
+                   'void', 
+                   [])
+    ## enb-net-device.h: bool ns3::EnbNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   visibility='private', is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_node.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_node.py	Tue Feb 08 13:08:45 2011 -0500
@@ -67,14 +67,10 @@
     module.add_class('PbbTlvBlock')
     ## ipv4-header.h: ns3::Ipv4Header [class]
     module.add_class('Ipv4Header', parent=root_module['ns3::Header'])
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag [class]
-    module.add_class('Ipv4PacketInfoTag', parent=root_module['ns3::Tag'])
     ## ipv6-header.h: ns3::Ipv6Header [class]
     module.add_class('Ipv6Header', parent=root_module['ns3::Header'])
     ## ipv6-header.h: ns3::Ipv6Header::NextHeader_e [enumeration]
     module.add_enum('NextHeader_e', ['IPV6_EXT_HOP_BY_HOP', 'IPV6_IPV4', 'IPV6_TCP', 'IPV6_UDP', 'IPV6_IPV6', 'IPV6_EXT_ROUTING', 'IPV6_EXT_FRAGMENTATION', 'IPV6_EXT_CONFIDENTIALITY', 'IPV6_EXT_AUTHENTIFICATION', 'IPV6_ICMPV6', 'IPV6_EXT_END', 'IPV6_EXT_DESTINATION', 'IPV6_SCTP', 'IPV6_EXT_MOBILITY', 'IPV6_UDP_LITE'], outer_class=root_module['ns3::Ipv6Header'])
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag [class]
-    module.add_class('Ipv6PacketInfoTag', parent=root_module['ns3::Tag'])
     ## llc-snap-header.h: ns3::LlcSnapHeader [class]
     module.add_class('LlcSnapHeader', parent=root_module['ns3::Header'])
     ## queue.h: ns3::Queue [class]
@@ -115,8 +111,6 @@
     module.add_class('SocketIpTtlTag', parent=root_module['ns3::Tag'])
     ## socket.h: ns3::SocketSetDontFragmentTag [class]
     module.add_class('SocketSetDontFragmentTag', parent=root_module['ns3::Tag'])
-    ## spectrum-phy.h: ns3::SpectrumPhy [class]
-    module.add_class('SpectrumPhy', parent=root_module['ns3::Object'])
     ## tcp-socket.h: ns3::TcpSocket [class]
     module.add_class('TcpSocket', parent=root_module['ns3::Socket'])
     ## tcp-socket-factory.h: ns3::TcpSocketFactory [class]
@@ -205,8 +199,6 @@
     module.add_class('SimpleChannel', parent=root_module['ns3::Channel'])
     ## simple-net-device.h: ns3::SimpleNetDevice [class]
     module.add_class('SimpleNetDevice', parent=root_module['ns3::NetDevice'])
-    ## spectrum-channel.h: ns3::SpectrumChannel [class]
-    module.add_class('SpectrumChannel', parent=root_module['ns3::Channel'])
     ## address.h: ns3::AddressChecker [class]
     module.add_class('AddressChecker', parent=root_module['ns3::AttributeChecker'])
     ## address.h: ns3::AddressValue [class]
@@ -216,12 +208,12 @@
     module.add_container('ns3::olsr::MprSet', 'ns3::Ipv4Address', container_type='set')
     module.add_container('std::vector< ns3::Ipv4Address >', 'ns3::Ipv4Address', container_type='vector')
     module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type='vector')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxEndErrorCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxEndErrorCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxEndErrorCallback&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxEndOkCallback&')
@@ -342,9 +334,7 @@
     register_Ns3PbbAddressTlvBlock_methods(root_module, root_module['ns3::PbbAddressTlvBlock'])
     register_Ns3PbbTlvBlock_methods(root_module, root_module['ns3::PbbTlvBlock'])
     register_Ns3Ipv4Header_methods(root_module, root_module['ns3::Ipv4Header'])
-    register_Ns3Ipv4PacketInfoTag_methods(root_module, root_module['ns3::Ipv4PacketInfoTag'])
     register_Ns3Ipv6Header_methods(root_module, root_module['ns3::Ipv6Header'])
-    register_Ns3Ipv6PacketInfoTag_methods(root_module, root_module['ns3::Ipv6PacketInfoTag'])
     register_Ns3LlcSnapHeader_methods(root_module, root_module['ns3::LlcSnapHeader'])
     register_Ns3Queue_methods(root_module, root_module['ns3::Queue'])
     register_Ns3RadiotapHeader_methods(root_module, root_module['ns3::RadiotapHeader'])
@@ -353,7 +343,6 @@
     register_Ns3SocketFactory_methods(root_module, root_module['ns3::SocketFactory'])
     register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag'])
     register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag'])
-    register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy'])
     register_Ns3TcpSocket_methods(root_module, root_module['ns3::TcpSocket'])
     register_Ns3TcpSocketFactory_methods(root_module, root_module['ns3::TcpSocketFactory'])
     register_Ns3UdpSocket_methods(root_module, root_module['ns3::UdpSocket'])
@@ -396,7 +385,6 @@
     register_Ns3PbbTlv_methods(root_module, root_module['ns3::PbbTlv'])
     register_Ns3SimpleChannel_methods(root_module, root_module['ns3::SimpleChannel'])
     register_Ns3SimpleNetDevice_methods(root_module, root_module['ns3::SimpleNetDevice'])
-    register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel'])
     register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker'])
     register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
     register_Ns3PbbAddressTlv_methods(root_module, root_module['ns3::PbbAddressTlv'])
@@ -1684,79 +1672,6 @@
                    [param('uint8_t', 'ttl')])
     return
 
-def register_Ns3Ipv4PacketInfoTag_methods(root_module, cls):
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag(ns3::Ipv4PacketInfoTag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4PacketInfoTag const &', 'arg0')])
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag() [constructor]
-    cls.add_constructor([])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_virtual=True)
-    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: ns3::TypeId ns3::Ipv4PacketInfoTag::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetLocalAddress() const [member function]
-    cls.add_method('GetLocalAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetRecvIf() const [member function]
-    cls.add_method('GetRecvIf', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: uint8_t ns3::Ipv4PacketInfoTag::GetTtl() const [member function]
-    cls.add_method('GetTtl', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: static ns3::TypeId ns3::Ipv4PacketInfoTag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetAddress(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetLocalAddress(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLocalAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
-    cls.add_method('SetRecvIf', 
-                   'void', 
-                   [param('uint32_t', 'ifindex')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetTtl(uint8_t ttl) [member function]
-    cls.add_method('SetTtl', 
-                   'void', 
-                   [param('uint8_t', 'ttl')])
-    return
-
 def register_Ns3Ipv6Header_methods(root_module, cls):
     ## ipv6-header.h: ns3::Ipv6Header::Ipv6Header(ns3::Ipv6Header const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv6Header const &', 'arg0')])
@@ -1857,79 +1772,6 @@
                    [param('uint8_t', 'traffic')])
     return
 
-def register_Ns3Ipv6PacketInfoTag_methods(root_module, cls):
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag(ns3::Ipv6PacketInfoTag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6PacketInfoTag const &', 'arg0')])
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag() [constructor]
-    cls.add_constructor([])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_virtual=True)
-    ## ipv6-packet-info-tag.h: ns3::Ipv6Address ns3::Ipv6PacketInfoTag::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetHoplimit() const [member function]
-    cls.add_method('GetHoplimit', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: ns3::TypeId ns3::Ipv6PacketInfoTag::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetRecvIf() const [member function]
-    cls.add_method('GetRecvIf', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetTrafficClass() const [member function]
-    cls.add_method('GetTrafficClass', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: static ns3::TypeId ns3::Ipv6PacketInfoTag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetAddress(ns3::Ipv6Address addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'addr')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetHoplimit(uint8_t ttl) [member function]
-    cls.add_method('SetHoplimit', 
-                   'void', 
-                   [param('uint8_t', 'ttl')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
-    cls.add_method('SetRecvIf', 
-                   'void', 
-                   [param('uint32_t', 'ifindex')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetTrafficClass(uint8_t tclass) [member function]
-    cls.add_method('SetTrafficClass', 
-                   'void', 
-                   [param('uint8_t', 'tclass')])
-    return
-
 def register_Ns3LlcSnapHeader_methods(root_module, cls):
     ## llc-snap-header.h: ns3::LlcSnapHeader::LlcSnapHeader(ns3::LlcSnapHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LlcSnapHeader const &', 'arg0')])
@@ -2548,53 +2390,6 @@
                    is_const=True, is_virtual=True)
     return
 
-def register_Ns3SpectrumPhy_methods(root_module, cls):
-    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy(ns3::SpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPhy const &', 'arg0')])
-    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetMobility() [member function]
-    cls.add_method('GetMobility', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumPhy::GetRxSpectrumModel() const [member function]
-    cls.add_method('GetRxSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## spectrum-phy.h: static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'd')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
-    cls.add_method('SetMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'm')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
-    cls.add_method('StartRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
 def register_Ns3TcpSocket_methods(root_module, cls):
     ## tcp-socket.h: ns3::TcpSocket::TcpSocket(ns3::TcpSocket const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TcpSocket const &', 'arg0')])
@@ -5261,38 +5056,6 @@
                    visibility='protected', is_virtual=True)
     return
 
-def register_Ns3SpectrumChannel_methods(root_module, cls):
-    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel() [constructor]
-    cls.add_constructor([])
-    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')])
-    ## spectrum-channel.h: void ns3::SpectrumChannel::AddRx(ns3::Ptr<ns3::SpectrumPhy> phy) [member function]
-    cls.add_method('AddRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr<ns3::SpectrumPropagationLossModel> loss) [member function]
-    cls.add_method('AddSpectrumPropagationLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr<ns3::PropagationDelayModel> delay) [member function]
-    cls.add_method('SetPropagationDelayModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::StartTx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue> txPsd, ns3::SpectrumType st, ns3::Time duration, ns3::Ptr<ns3::SpectrumPhy> sender) [member function]
-    cls.add_method('StartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration'), param('ns3::Ptr< ns3::SpectrumPhy >', 'sender')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
 def register_Ns3AddressChecker_methods(root_module, cls):
     ## address.h: ns3::AddressChecker::AddressChecker() [constructor]
     cls.add_constructor([])
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_olsr.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_olsr.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,18 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## olsr-helper.h: ns3::OlsrHelper [class]
+    module.add_class('OlsrHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## olsr-state.h: ns3::OlsrState [class]
+    module.add_class('OlsrState')
+    module.add_container('std::vector< ns3::olsr::MprSelectorTuple >', 'ns3::olsr::MprSelectorTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::NeighborTuple >', 'ns3::olsr::NeighborTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::TwoHopNeighborTuple >', 'ns3::olsr::TwoHopNeighborTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::LinkTuple >', 'ns3::olsr::LinkTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::TopologyTuple >', 'ns3::olsr::TopologyTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::IfaceAssocTuple >', 'ns3::olsr::IfaceAssocTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::AssociationTuple >', 'ns3::olsr::AssociationTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::Association >', 'ns3::olsr::Association', container_type='vector')
     
     ## Register a nested module for the namespace Config
     
@@ -93,8 +105,954 @@
 def register_types_ns3_olsr(module):
     root_module = module.get_root()
     
+    ## olsr-repositories.h: ns3::olsr::Association [struct]
+    module.add_class('Association')
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple [struct]
+    module.add_class('AssociationTuple')
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple [struct]
+    module.add_class('DuplicateTuple')
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple [struct]
+    module.add_class('IfaceAssocTuple')
+    ## olsr-repositories.h: ns3::olsr::LinkTuple [struct]
+    module.add_class('LinkTuple')
+    ## olsr-header.h: ns3::olsr::MessageHeader [class]
+    module.add_class('MessageHeader', parent=root_module['ns3::Header'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType [enumeration]
+    module.add_enum('MessageType', ['HELLO_MESSAGE', 'TC_MESSAGE', 'MID_MESSAGE', 'HNA_MESSAGE'], outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello [struct]
+    module.add_class('Hello', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage [struct]
+    module.add_class('LinkMessage', outer_class=root_module['ns3::olsr::MessageHeader::Hello'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna [struct]
+    module.add_class('Hna', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association [struct]
+    module.add_class('Association', outer_class=root_module['ns3::olsr::MessageHeader::Hna'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid [struct]
+    module.add_class('Mid', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc [struct]
+    module.add_class('Tc', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple [struct]
+    module.add_class('MprSelectorTuple')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple [struct]
+    module.add_class('NeighborTuple')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::Status [enumeration]
+    module.add_enum('Status', ['STATUS_NOT_SYM', 'STATUS_SYM'], outer_class=root_module['ns3::olsr::NeighborTuple'])
+    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase [class]
+    module.add_class('OlsrMprTestCase', parent=root_module['ns3::TestCase'])
+    ## olsr-header.h: ns3::olsr::PacketHeader [class]
+    module.add_class('PacketHeader', parent=root_module['ns3::Header'])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol [class]
+    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry [struct]
+    module.add_class('RoutingTableEntry')
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple [struct]
+    module.add_class('TopologyTuple')
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple [struct]
+    module.add_class('TwoHopNeighborTuple')
+    module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
 
 def register_methods(root_module):
+    register_Ns3OlsrHelper_methods(root_module, root_module['ns3::OlsrHelper'])
+    register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
+    register_Ns3OlsrAssociation_methods(root_module, root_module['ns3::olsr::Association'])
+    register_Ns3OlsrAssociationTuple_methods(root_module, root_module['ns3::olsr::AssociationTuple'])
+    register_Ns3OlsrDuplicateTuple_methods(root_module, root_module['ns3::olsr::DuplicateTuple'])
+    register_Ns3OlsrIfaceAssocTuple_methods(root_module, root_module['ns3::olsr::IfaceAssocTuple'])
+    register_Ns3OlsrLinkTuple_methods(root_module, root_module['ns3::olsr::LinkTuple'])
+    register_Ns3OlsrMessageHeader_methods(root_module, root_module['ns3::olsr::MessageHeader'])
+    register_Ns3OlsrMessageHeaderHello_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello'])
+    register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello::LinkMessage'])
+    register_Ns3OlsrMessageHeaderHna_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna'])
+    register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna::Association'])
+    register_Ns3OlsrMessageHeaderMid_methods(root_module, root_module['ns3::olsr::MessageHeader::Mid'])
+    register_Ns3OlsrMessageHeaderTc_methods(root_module, root_module['ns3::olsr::MessageHeader::Tc'])
+    register_Ns3OlsrMprSelectorTuple_methods(root_module, root_module['ns3::olsr::MprSelectorTuple'])
+    register_Ns3OlsrNeighborTuple_methods(root_module, root_module['ns3::olsr::NeighborTuple'])
+    register_Ns3OlsrOlsrMprTestCase_methods(root_module, root_module['ns3::olsr::OlsrMprTestCase'])
+    register_Ns3OlsrPacketHeader_methods(root_module, root_module['ns3::olsr::PacketHeader'])
+    register_Ns3OlsrRoutingProtocol_methods(root_module, root_module['ns3::olsr::RoutingProtocol'])
+    register_Ns3OlsrRoutingTableEntry_methods(root_module, root_module['ns3::olsr::RoutingTableEntry'])
+    register_Ns3OlsrTopologyTuple_methods(root_module, root_module['ns3::olsr::TopologyTuple'])
+    register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, root_module['ns3::olsr::TwoHopNeighborTuple'])
+    return
+
+def register_Ns3OlsrHelper_methods(root_module, cls):
+    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper() [constructor]
+    cls.add_constructor([])
+    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper(ns3::OlsrHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OlsrHelper const &', 'arg0')])
+    ## olsr-helper.h: ns3::OlsrHelper * ns3::OlsrHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::OlsrHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-helper.h: void ns3::OlsrHelper::ExcludeInterface(ns3::Ptr<ns3::Node> node, uint32_t interface) [member function]
+    cls.add_method('ExcludeInterface', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'interface')])
+    ## olsr-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::OlsrHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-helper.h: void ns3::OlsrHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+    return
+
+def register_Ns3OlsrState_methods(root_module, cls):
+    ## olsr-state.h: ns3::OlsrState::OlsrState(ns3::OlsrState const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OlsrState const &', 'arg0')])
+    ## olsr-state.h: ns3::OlsrState::OlsrState() [constructor]
+    cls.add_constructor([])
+    ## olsr-state.h: void ns3::OlsrState::EraseAssociation(ns3::olsr::Association const & tuple) [member function]
+    cls.add_method('EraseAssociation', 
+                   'void', 
+                   [param('ns3::olsr::Association const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
+    cls.add_method('EraseAssociationTuple', 
+                   'void', 
+                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
+    cls.add_method('EraseDuplicateTuple', 
+                   'void', 
+                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
+    cls.add_method('EraseIfaceAssocTuple', 
+                   'void', 
+                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
+    cls.add_method('EraseLinkTuple', 
+                   'void', 
+                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
+    cls.add_method('EraseMprSelectorTuple', 
+                   'void', 
+                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuples(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('EraseMprSelectorTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::olsr::NeighborTuple const & neighborTuple) [member function]
+    cls.add_method('EraseNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::NeighborTuple const &', 'neighborTuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('EraseNeighborTuple', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: void ns3::OlsrState::EraseOlderTopologyTuples(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
+    cls.add_method('EraseOlderTopologyTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
+    cls.add_method('EraseTopologyTuple', 
+                   'void', 
+                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
+    cls.add_method('EraseTwoHopNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor) [member function]
+    cls.add_method('EraseTwoHopNeighborTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'neighbor')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
+    cls.add_method('EraseTwoHopNeighborTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
+    ## olsr-state.h: ns3::olsr::AssociationTuple * ns3::OlsrState::FindAssociationTuple(ns3::Ipv4Address const & gatewayAddr, ns3::Ipv4Address const & networkAddr, ns3::Ipv4Mask const & netmask) [member function]
+    cls.add_method('FindAssociationTuple', 
+                   'ns3::olsr::AssociationTuple *', 
+                   [param('ns3::Ipv4Address const &', 'gatewayAddr'), param('ns3::Ipv4Address const &', 'networkAddr'), param('ns3::Ipv4Mask const &', 'netmask')])
+    ## olsr-state.h: ns3::olsr::DuplicateTuple * ns3::OlsrState::FindDuplicateTuple(ns3::Ipv4Address const & address, uint16_t sequenceNumber) [member function]
+    cls.add_method('FindDuplicateTuple', 
+                   'ns3::olsr::DuplicateTuple *', 
+                   [param('ns3::Ipv4Address const &', 'address'), param('uint16_t', 'sequenceNumber')])
+    ## olsr-state.h: ns3::olsr::IfaceAssocTuple * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
+    cls.add_method('FindIfaceAssocTuple', 
+                   'ns3::olsr::IfaceAssocTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
+    ## olsr-state.h: ns3::olsr::IfaceAssocTuple const * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) const [member function]
+    cls.add_method('FindIfaceAssocTuple', 
+                   'ns3::olsr::IfaceAssocTuple const *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindLinkTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
+    cls.add_method('FindLinkTuple', 
+                   'ns3::olsr::LinkTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
+    ## olsr-state.h: bool ns3::OlsrState::FindMprAddress(ns3::Ipv4Address const & address) [member function]
+    cls.add_method('FindMprAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address const &', 'address')])
+    ## olsr-state.h: ns3::olsr::MprSelectorTuple * ns3::OlsrState::FindMprSelectorTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('FindMprSelectorTuple', 
+                   'ns3::olsr::MprSelectorTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: std::vector<ns3::Ipv4Address, std::allocator<ns3::Ipv4Address> > ns3::OlsrState::FindNeighborInterfaces(ns3::Ipv4Address const & neighborMainAddr) const [member function]
+    cls.add_method('FindNeighborInterfaces', 
+                   'std::vector< ns3::Ipv4Address >', 
+                   [param('ns3::Ipv4Address const &', 'neighborMainAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('FindNeighborTuple', 
+                   'ns3::olsr::NeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr, uint8_t willingness) [member function]
+    cls.add_method('FindNeighborTuple', 
+                   'ns3::olsr::NeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr'), param('uint8_t', 'willingness')])
+    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindNewerTopologyTuple(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
+    cls.add_method('FindNewerTopologyTuple', 
+                   'ns3::olsr::TopologyTuple *', 
+                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
+    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindSymLinkTuple(ns3::Ipv4Address const & ifaceAddr, ns3::Time time) [member function]
+    cls.add_method('FindSymLinkTuple', 
+                   'ns3::olsr::LinkTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr'), param('ns3::Time', 'time')])
+    ## olsr-state.h: ns3::olsr::NeighborTuple const * ns3::OlsrState::FindSymNeighborTuple(ns3::Ipv4Address const & mainAddr) const [member function]
+    cls.add_method('FindSymNeighborTuple', 
+                   'ns3::olsr::NeighborTuple const *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindTopologyTuple(ns3::Ipv4Address const & destAddr, ns3::Ipv4Address const & lastAddr) [member function]
+    cls.add_method('FindTopologyTuple', 
+                   'ns3::olsr::TopologyTuple *', 
+                   [param('ns3::Ipv4Address const &', 'destAddr'), param('ns3::Ipv4Address const &', 'lastAddr')])
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborTuple * ns3::OlsrState::FindTwoHopNeighborTuple(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
+    cls.add_method('FindTwoHopNeighborTuple', 
+                   'ns3::olsr::TwoHopNeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
+    ## olsr-state.h: ns3::olsr::AssociationSet const & ns3::OlsrState::GetAssociationSet() const [member function]
+    cls.add_method('GetAssociationSet', 
+                   'ns3::olsr::AssociationSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::Associations const & ns3::OlsrState::GetAssociations() const [member function]
+    cls.add_method('GetAssociations', 
+                   'ns3::olsr::Associations const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::IfaceAssocSet const & ns3::OlsrState::GetIfaceAssocSet() const [member function]
+    cls.add_method('GetIfaceAssocSet', 
+                   'ns3::olsr::IfaceAssocSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::IfaceAssocSet & ns3::OlsrState::GetIfaceAssocSetMutable() [member function]
+    cls.add_method('GetIfaceAssocSetMutable', 
+                   'ns3::olsr::IfaceAssocSet &', 
+                   [])
+    ## olsr-state.h: ns3::olsr::LinkSet const & ns3::OlsrState::GetLinks() const [member function]
+    cls.add_method('GetLinks', 
+                   'ns3::olsr::LinkSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::MprSelectorSet const & ns3::OlsrState::GetMprSelectors() const [member function]
+    cls.add_method('GetMprSelectors', 
+                   'ns3::olsr::MprSelectorSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::MprSet ns3::OlsrState::GetMprSet() const [member function]
+    cls.add_method('GetMprSet', 
+                   'ns3::olsr::MprSet', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborSet const & ns3::OlsrState::GetNeighbors() const [member function]
+    cls.add_method('GetNeighbors', 
+                   'ns3::olsr::NeighborSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborSet & ns3::OlsrState::GetNeighbors() [member function]
+    cls.add_method('GetNeighbors', 
+                   'ns3::olsr::NeighborSet &', 
+                   [])
+    ## olsr-state.h: ns3::olsr::TopologySet const & ns3::OlsrState::GetTopologySet() const [member function]
+    cls.add_method('GetTopologySet', 
+                   'ns3::olsr::TopologySet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet const & ns3::OlsrState::GetTwoHopNeighbors() const [member function]
+    cls.add_method('GetTwoHopNeighbors', 
+                   'ns3::olsr::TwoHopNeighborSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet & ns3::OlsrState::GetTwoHopNeighbors() [member function]
+    cls.add_method('GetTwoHopNeighbors', 
+                   'ns3::olsr::TwoHopNeighborSet &', 
+                   [])
+    ## olsr-state.h: void ns3::OlsrState::InsertAssociation(ns3::olsr::Association const & tuple) [member function]
+    cls.add_method('InsertAssociation', 
+                   'void', 
+                   [param('ns3::olsr::Association const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
+    cls.add_method('InsertAssociationTuple', 
+                   'void', 
+                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
+    cls.add_method('InsertDuplicateTuple', 
+                   'void', 
+                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
+    cls.add_method('InsertIfaceAssocTuple', 
+                   'void', 
+                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
+    ## olsr-state.h: ns3::olsr::LinkTuple & ns3::OlsrState::InsertLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
+    cls.add_method('InsertLinkTuple', 
+                   'ns3::olsr::LinkTuple &', 
+                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
+    cls.add_method('InsertMprSelectorTuple', 
+                   'void', 
+                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertNeighborTuple(ns3::olsr::NeighborTuple const & tuple) [member function]
+    cls.add_method('InsertNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::NeighborTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
+    cls.add_method('InsertTopologyTuple', 
+                   'void', 
+                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
+    cls.add_method('InsertTwoHopNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
+    ## olsr-state.h: std::string ns3::OlsrState::PrintMprSelectorSet() const [member function]
+    cls.add_method('PrintMprSelectorSet', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: void ns3::OlsrState::SetMprSet(ns3::olsr::MprSet mprSet) [member function]
+    cls.add_method('SetMprSet', 
+                   'void', 
+                   [param('ns3::olsr::MprSet', 'mprSet')])
+    return
+
+def register_Ns3OlsrAssociation_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::Association::Association() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::Association::Association(ns3::olsr::Association const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::Association const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::Association::netmask [variable]
+    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::Association::networkAddr [variable]
+    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrAssociationTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple(ns3::olsr::AssociationTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::AssociationTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::gatewayAddr [variable]
+    cls.add_instance_attribute('gatewayAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::netmask [variable]
+    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::networkAddr [variable]
+    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrDuplicateTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple(ns3::olsr::DuplicateTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::DuplicateTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::address [variable]
+    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::ifaceList [variable]
+    cls.add_instance_attribute('ifaceList', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::retransmitted [variable]
+    cls.add_instance_attribute('retransmitted', 'bool', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::sequenceNumber [variable]
+    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3OlsrIfaceAssocTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::IfaceAssocTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::ifaceAddr [variable]
+    cls.add_instance_attribute('ifaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::mainAddr [variable]
+    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3OlsrLinkTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple(ns3::olsr::LinkTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::LinkTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::asymTime [variable]
+    cls.add_instance_attribute('asymTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::localIfaceAddr [variable]
+    cls.add_instance_attribute('localIfaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::neighborIfaceAddr [variable]
+    cls.add_instance_attribute('neighborIfaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::symTime [variable]
+    cls.add_instance_attribute('symTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader(ns3::olsr::MessageHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello & ns3::olsr::MessageHeader::GetHello() [member function]
+    cls.add_method('GetHello', 
+                   'ns3::olsr::MessageHeader::Hello &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello const & ns3::olsr::MessageHeader::GetHello() const [member function]
+    cls.add_method('GetHello', 
+                   'ns3::olsr::MessageHeader::Hello const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna & ns3::olsr::MessageHeader::GetHna() [member function]
+    cls.add_method('GetHna', 
+                   'ns3::olsr::MessageHeader::Hna &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna const & ns3::olsr::MessageHeader::GetHna() const [member function]
+    cls.add_method('GetHna', 
+                   'ns3::olsr::MessageHeader::Hna const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetHopCount() const [member function]
+    cls.add_method('GetHopCount', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::TypeId ns3::olsr::MessageHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: uint16_t ns3::olsr::MessageHeader::GetMessageSequenceNumber() const [member function]
+    cls.add_method('GetMessageSequenceNumber', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType ns3::olsr::MessageHeader::GetMessageType() const [member function]
+    cls.add_method('GetMessageType', 
+                   'ns3::olsr::MessageHeader::MessageType', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid & ns3::olsr::MessageHeader::GetMid() [member function]
+    cls.add_method('GetMid', 
+                   'ns3::olsr::MessageHeader::Mid &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid const & ns3::olsr::MessageHeader::GetMid() const [member function]
+    cls.add_method('GetMid', 
+                   'ns3::olsr::MessageHeader::Mid const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::Ipv4Address ns3::olsr::MessageHeader::GetOriginatorAddress() const [member function]
+    cls.add_method('GetOriginatorAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc & ns3::olsr::MessageHeader::GetTc() [member function]
+    cls.add_method('GetTc', 
+                   'ns3::olsr::MessageHeader::Tc &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc const & ns3::olsr::MessageHeader::GetTc() const [member function]
+    cls.add_method('GetTc', 
+                   'ns3::olsr::MessageHeader::Tc const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetTimeToLive() const [member function]
+    cls.add_method('GetTimeToLive', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: static ns3::TypeId ns3::olsr::MessageHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::GetVTime() const [member function]
+    cls.add_method('GetVTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetHopCount(uint8_t hopCount) [member function]
+    cls.add_method('SetHopCount', 
+                   'void', 
+                   [param('uint8_t', 'hopCount')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageSequenceNumber(uint16_t messageSequenceNumber) [member function]
+    cls.add_method('SetMessageSequenceNumber', 
+                   'void', 
+                   [param('uint16_t', 'messageSequenceNumber')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageType(ns3::olsr::MessageHeader::MessageType messageType) [member function]
+    cls.add_method('SetMessageType', 
+                   'void', 
+                   [param('ns3::olsr::MessageHeader::MessageType', 'messageType')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetOriginatorAddress(ns3::Ipv4Address originatorAddress) [member function]
+    cls.add_method('SetOriginatorAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'originatorAddress')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetTimeToLive(uint8_t timeToLive) [member function]
+    cls.add_method('SetTimeToLive', 
+                   'void', 
+                   [param('uint8_t', 'timeToLive')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetVTime(ns3::Time time) [member function]
+    cls.add_method('SetVTime', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    return
+
+def register_Ns3OlsrMessageHeaderHello_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello(ns3::olsr::MessageHeader::Hello const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::Hello::GetHTime() const [member function]
+    cls.add_method('GetHTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::SetHTime(ns3::Time time) [member function]
+    cls.add_method('SetHTime', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::hTime [variable]
+    cls.add_instance_attribute('hTime', 'uint8_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::linkMessages [variable]
+    cls.add_instance_attribute('linkMessages', 'std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::willingness [variable]
+    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage(ns3::olsr::MessageHeader::Hello::LinkMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello::LinkMessage const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::linkCode [variable]
+    cls.add_instance_attribute('linkCode', 'uint8_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses [variable]
+    cls.add_instance_attribute('neighborInterfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHna_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna(ns3::olsr::MessageHeader::Hna const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::associations [variable]
+    cls.add_instance_attribute('associations', 'std::vector< ns3::olsr::MessageHeader::Hna::Association >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association(ns3::olsr::MessageHeader::Hna::Association const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna::Association const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::address [variable]
+    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::mask [variable]
+    cls.add_instance_attribute('mask', 'ns3::Ipv4Mask', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderMid_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid(ns3::olsr::MessageHeader::Mid const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Mid const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::interfaceAddresses [variable]
+    cls.add_instance_attribute('interfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderTc_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc(ns3::olsr::MessageHeader::Tc const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Tc const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::ansn [variable]
+    cls.add_instance_attribute('ansn', 'uint16_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::neighborAddresses [variable]
+    cls.add_instance_attribute('neighborAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMprSelectorTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple(ns3::olsr::MprSelectorTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MprSelectorTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::mainAddr [variable]
+    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrNeighborTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple(ns3::olsr::NeighborTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::NeighborTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::neighborMainAddr [variable]
+    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::status [variable]
+    cls.add_instance_attribute('status', 'ns3::olsr::NeighborTuple::Status', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::willingness [variable]
+    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
+    return
+
+def register_Ns3OlsrOlsrMprTestCase_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase::OlsrMprTestCase() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: void ns3::olsr::OlsrMprTestCase::DoRun() [member function]
+    cls.add_method('DoRun', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    return
+
+def register_Ns3OlsrPacketHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader(ns3::olsr::PacketHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::PacketHeader const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## olsr-header.h: ns3::TypeId ns3::olsr::PacketHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketLength() const [member function]
+    cls.add_method('GetPacketLength', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketSequenceNumber() const [member function]
+    cls.add_method('GetPacketSequenceNumber', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: static ns3::TypeId ns3::olsr::PacketHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketLength(uint16_t length) [member function]
+    cls.add_method('SetPacketLength', 
+                   'void', 
+                   [param('uint16_t', 'length')])
+    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketSequenceNumber(uint16_t seqnum) [member function]
+    cls.add_method('SetPacketSequenceNumber', 
+                   'void', 
+                   [param('uint16_t', 'seqnum')])
+    return
+
+def register_Ns3OlsrRoutingProtocol_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol(ns3::olsr::RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::RoutingProtocol const &', 'arg0')])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::AddHostNetworkAssociation(ns3::Ipv4Address networkAddr, ns3::Ipv4Mask netmask) [member function]
+    cls.add_method('AddHostNetworkAssociation', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'networkAddr'), param('ns3::Ipv4Mask', 'netmask')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::Dump() [member function]
+    cls.add_method('Dump', 
+                   'void', 
+                   [])
+    ## olsr-routing-protocol.h: std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > ns3::olsr::RoutingProtocol::GetInterfaceExclusions() const [member function]
+    cls.add_method('GetInterfaceExclusions', 
+                   'std::set< unsigned int >', 
+                   [], 
+                   is_const=True)
+    ## olsr-routing-protocol.h: std::vector<ns3::olsr::RoutingTableEntry,std::allocator<ns3::olsr::RoutingTableEntry> > ns3::olsr::RoutingProtocol::GetRoutingTableEntries() const [member function]
+    cls.add_method('GetRoutingTableEntries', 
+                   'std::vector< ns3::olsr::RoutingTableEntry >', 
+                   [], 
+                   is_const=True)
+    ## olsr-routing-protocol.h: static ns3::TypeId ns3::olsr::RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetInterfaceExclusions(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > exceptions) [member function]
+    cls.add_method('SetInterfaceExclusions', 
+                   'void', 
+                   [param('std::set< unsigned int >', 'exceptions')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetMainInterface(uint32_t interface) [member function]
+    cls.add_method('SetMainInterface', 
+                   'void', 
+                   [param('uint32_t', 'interface')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetRoutingTableAssociation(ns3::Ptr<ns3::Ipv4StaticRouting> routingTable) [member function]
+    cls.add_method('SetRoutingTableAssociation', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4StaticRouting >', 'routingTable')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::olsr::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3OlsrRoutingTableEntry_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry(ns3::olsr::RoutingTableEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::RoutingTableEntry const &', 'arg0')])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::destAddr [variable]
+    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::distance [variable]
+    cls.add_instance_attribute('distance', 'uint32_t', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::interface [variable]
+    cls.add_instance_attribute('interface', 'uint32_t', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::nextAddr [variable]
+    cls.add_instance_attribute('nextAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrTopologyTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple(ns3::olsr::TopologyTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::TopologyTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::destAddr [variable]
+    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::lastAddr [variable]
+    cls.add_instance_attribute('lastAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::sequenceNumber [variable]
+    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::TwoHopNeighborTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::neighborMainAddr [variable]
+    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::twoHopNeighborAddr [variable]
+    cls.add_instance_attribute('twoHopNeighborAddr', 'ns3::Ipv4Address', is_const=False)
     return
 
 def register_functions(root_module):
@@ -135,5 +1093,13 @@
     return
 
 def register_functions_ns3_olsr(module, root_module):
+    ## olsr-header.h: extern double ns3::olsr::EmfToSeconds(uint8_t emf) [free function]
+    module.add_function('EmfToSeconds', 
+                        'double', 
+                        [param('uint8_t', 'emf')])
+    ## olsr-header.h: extern uint8_t ns3::olsr::SecondsToEmf(double seconds) [free function]
+    module.add_function('SecondsToEmf', 
+                        'uint8_t', 
+                        [param('double', 'seconds')])
     return
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_propagation.py	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,606 @@
+from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
+
+def register_types(module):
+    root_module = module.get_root()
+    
+    ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
+    module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
+    ## propagation-loss-model.h: ns3::PropagationLossModel [class]
+    module.add_class('PropagationLossModel', parent=root_module['ns3::Object'])
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
+    module.add_class('RandomPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
+    ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
+    module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::RangePropagationLossModel [class]
+    module.add_class('RangePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel [class]
+    module.add_class('ThreeLogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel [class]
+    module.add_class('TwoRayGroundPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
+    module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel [class]
+    module.add_class('Cost231PropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment [enumeration]
+    module.add_enum('Environment', ['SubUrban', 'MediumCity', 'Metropolitan'], outer_class=root_module['ns3::Cost231PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::FixedRssLossModel [class]
+    module.add_class('FixedRssLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
+    module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
+    module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel [class]
+    module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel [class]
+    module.add_class('MatrixPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel [class]
+    module.add_class('NakagamiPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    
+    ## Register a nested module for the namespace Config
+    
+    nested_module = module.add_cpp_namespace('Config')
+    register_types_ns3_Config(nested_module)
+    
+    
+    ## Register a nested module for the namespace FatalImpl
+    
+    nested_module = module.add_cpp_namespace('FatalImpl')
+    register_types_ns3_FatalImpl(nested_module)
+    
+    
+    ## Register a nested module for the namespace addressUtils
+    
+    nested_module = module.add_cpp_namespace('addressUtils')
+    register_types_ns3_addressUtils(nested_module)
+    
+    
+    ## Register a nested module for the namespace aodv
+    
+    nested_module = module.add_cpp_namespace('aodv')
+    register_types_ns3_aodv(nested_module)
+    
+    
+    ## Register a nested module for the namespace dot11s
+    
+    nested_module = module.add_cpp_namespace('dot11s')
+    register_types_ns3_dot11s(nested_module)
+    
+    
+    ## Register a nested module for the namespace dsdv
+    
+    nested_module = module.add_cpp_namespace('dsdv')
+    register_types_ns3_dsdv(nested_module)
+    
+    
+    ## Register a nested module for the namespace flame
+    
+    nested_module = module.add_cpp_namespace('flame')
+    register_types_ns3_flame(nested_module)
+    
+    
+    ## Register a nested module for the namespace internal
+    
+    nested_module = module.add_cpp_namespace('internal')
+    register_types_ns3_internal(nested_module)
+    
+    
+    ## Register a nested module for the namespace olsr
+    
+    nested_module = module.add_cpp_namespace('olsr')
+    register_types_ns3_olsr(nested_module)
+    
+
+def register_types_ns3_Config(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_FatalImpl(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_addressUtils(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_aodv(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_dot11s(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_dsdv(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_flame(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_internal(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_olsr(module):
+    root_module = module.get_root()
+    
+
+def register_methods(root_module):
+    register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel'])
+    register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel'])
+    register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel'])
+    register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel'])
+    register_Ns3RangePropagationLossModel_methods(root_module, root_module['ns3::RangePropagationLossModel'])
+    register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel'])
+    register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel'])
+    register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel'])
+    register_Ns3Cost231PropagationLossModel_methods(root_module, root_module['ns3::Cost231PropagationLossModel'])
+    register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
+    register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
+    register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
+    register_Ns3LogDistancePropagationLossModel_methods(root_module, root_module['ns3::LogDistancePropagationLossModel'])
+    register_Ns3MatrixPropagationLossModel_methods(root_module, root_module['ns3::MatrixPropagationLossModel'])
+    register_Ns3NakagamiPropagationLossModel_methods(root_module, root_module['ns3::NakagamiPropagationLossModel'])
+    return
+
+def register_Ns3PropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel(ns3::PropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::Time ns3::PropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::PropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3PropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::PropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::PropagationLossModel::PropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::PropagationLossModel::SetNext(ns3::Ptr<ns3::PropagationLossModel> next) [member function]
+    cls.add_method('SetNext', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PropagationLossModel >', 'next')])
+    ## propagation-loss-model.h: double ns3::PropagationLossModel::CalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('CalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RandomPropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel(ns3::RandomPropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RandomPropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::Time ns3::RandomPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::RandomPropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3RandomPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::RandomPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::RandomPropagationLossModel::RandomPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::RandomPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RangePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::RangePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::RangePropagationLossModel::RangePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::RangePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::ThreeLogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::TwoRayGroundPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
+    cls.add_method('SetSystemLoss', 
+                   'void', 
+                   [param('double', 'systemLoss')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetSystemLoss() const [member function]
+    cls.add_method('GetSystemLoss', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ(double heightAboveZ) [member function]
+    cls.add_method('SetHeightAboveZ', 
+                   'void', 
+                   [param('double', 'heightAboveZ')])
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
+    cls.add_method('GetSpeed', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
+    cls.add_method('SetSpeed', 
+                   'void', 
+                   [param('double', 'speed')])
+    return
+
+def register_Ns3Cost231PropagationLossModel_methods(root_module, cls):
+    ## cost231-propagation-loss-model.h: static ns3::TypeId ns3::Cost231PropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Cost231PropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetLoss', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetBSAntennaHeight(double height) [member function]
+    cls.add_method('SetBSAntennaHeight', 
+                   'void', 
+                   [param('double', 'height')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetSSAntennaHeight(double height) [member function]
+    cls.add_method('SetSSAntennaHeight', 
+                   'void', 
+                   [param('double', 'height')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetEnvironment(ns3::Cost231PropagationLossModel::Environment env) [member function]
+    cls.add_method('SetEnvironment', 
+                   'void', 
+                   [param('ns3::Cost231PropagationLossModel::Environment', 'env')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetBSAntennaHeight() const [member function]
+    cls.add_method('GetBSAntennaHeight', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetSSAntennaHeight() const [member function]
+    cls.add_method('GetSSAntennaHeight', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment ns3::Cost231PropagationLossModel::GetEnvironment() const [member function]
+    cls.add_method('GetEnvironment', 
+                   'ns3::Cost231PropagationLossModel::Environment', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetShadowing() [member function]
+    cls.add_method('GetShadowing', 
+                   'double', 
+                   [])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetShadowing(double shadowing) [member function]
+    cls.add_method('SetShadowing', 
+                   'void', 
+                   [param('double', 'shadowing')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3FixedRssLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::FixedRssLossModel::FixedRssLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::FixedRssLossModel::SetRss(double rss) [member function]
+    cls.add_method('SetRss', 
+                   'void', 
+                   [param('double', 'rss')])
+    ## propagation-loss-model.h: double ns3::FixedRssLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::FriisPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::FriisPropagationLossModel::FriisPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
+    cls.add_method('SetSystemLoss', 
+                   'void', 
+                   [param('double', 'systemLoss')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetSystemLoss() const [member function]
+    cls.add_method('GetSystemLoss', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3JakesPropagationLossModel_methods(root_module, cls):
+    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel::JakesPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNOscillators() const [member function]
+    cls.add_method('GetNOscillators', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNRays() const [member function]
+    cls.add_method('GetNRays', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## jakes-propagation-loss-model.h: static ns3::TypeId ns3::JakesPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNOscillators(uint8_t nOscillators) [member function]
+    cls.add_method('SetNOscillators', 
+                   'void', 
+                   [param('uint8_t', 'nOscillators')])
+    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNRays(uint8_t nRays) [member function]
+    cls.add_method('SetNRays', 
+                   'void', 
+                   [param('uint8_t', 'nRays')])
+    ## jakes-propagation-loss-model.h: double ns3::JakesPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::LogDistancePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetPathLossExponent(double n) [member function]
+    cls.add_method('SetPathLossExponent', 
+                   'void', 
+                   [param('double', 'n')])
+    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::GetPathLossExponent() const [member function]
+    cls.add_method('GetPathLossExponent', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetReference(double referenceDistance, double referenceLoss) [member function]
+    cls.add_method('SetReference', 
+                   'void', 
+                   [param('double', 'referenceDistance'), param('double', 'referenceLoss')])
+    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3MatrixPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::MatrixPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel::MatrixPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, double loss, bool symmetric=true) [member function]
+    cls.add_method('SetLoss', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('double', 'loss'), param('bool', 'symmetric', default_value='true')])
+    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetDefaultLoss(double arg0) [member function]
+    cls.add_method('SetDefaultLoss', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## propagation-loss-model.h: double ns3::MatrixPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3NakagamiPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::NakagamiPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::NakagamiPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_functions(root_module):
+    module = root_module
+    register_functions_ns3_Config(module.get_submodule('Config'), root_module)
+    register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
+    register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
+    register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
+    register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
+    register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
+    register_functions_ns3_flame(module.get_submodule('flame'), root_module)
+    register_functions_ns3_internal(module.get_submodule('internal'), root_module)
+    register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
+    return
+
+def register_functions_ns3_Config(module, root_module):
+    return
+
+def register_functions_ns3_FatalImpl(module, root_module):
+    return
+
+def register_functions_ns3_addressUtils(module, root_module):
+    return
+
+def register_functions_ns3_aodv(module, root_module):
+    return
+
+def register_functions_ns3_dot11s(module, root_module):
+    return
+
+def register_functions_ns3_dsdv(module, root_module):
+    return
+
+def register_functions_ns3_flame(module, root_module):
+    return
+
+def register_functions_ns3_internal(module, root_module):
+    return
+
+def register_functions_ns3_olsr(module, root_module):
+    return
+
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_simulator.py	Tue Feb 08 13:08:45 2011 -0500
@@ -5,7 +5,7 @@
     
     ## event-id.h: ns3::EventId [class]
     module.add_class('EventId')
-    ## high-precision-128.h: ns3::HighPrecision [class]
+    ## high-precision-double.h: ns3::HighPrecision [class]
     module.add_class('HighPrecision')
     ## simulator.h: ns3::Simulator [class]
     module.add_class('Simulator', is_singleton=True)
@@ -250,67 +250,65 @@
 
 def register_Ns3HighPrecision_methods(root_module, cls):
     cls.add_output_stream_operator()
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HighPrecision const &', 'arg0')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t high, uint64_t low) [constructor]
-    cls.add_constructor([param('int64_t', 'high'), param('uint64_t', 'low')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision() [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision() [constructor]
     cls.add_constructor([])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
     cls.add_constructor([param('int64_t', 'value'), param('bool', 'dummy')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
     cls.add_constructor([param('double', 'value')])
-    ## high-precision-128.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
     cls.add_method('Add', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
+    ## high-precision-double.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
     cls.add_method('Compare', 
                    'int', 
                    [param('ns3::HighPrecision const &', 'o')], 
                    is_const=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
     cls.add_method('Div', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: double ns3::HighPrecision::GetDouble() const [member function]
+    ## high-precision-double.h: double ns3::HighPrecision::GetDouble() const [member function]
     cls.add_method('GetDouble', 
                    'double', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetHigh() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetHigh() const [member function]
     cls.add_method('GetHigh', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
     cls.add_method('GetInteger', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: uint64_t ns3::HighPrecision::GetLow() const [member function]
+    ## high-precision-double.h: uint64_t ns3::HighPrecision::GetLow() const [member function]
     cls.add_method('GetLow', 
                    'uint64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
     cls.add_method('Invert', 
                    'ns3::HighPrecision', 
                    [param('uint64_t', 'v')], 
                    is_static=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
     cls.add_method('Mul', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
     cls.add_method('MulByInvert', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
     cls.add_method('Sub', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
     cls.add_method('Zero', 
                    'ns3::HighPrecision', 
                    [], 
@@ -410,13 +408,13 @@
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_spectrum.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_spectrum.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,24 +3,58 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper [class]
+    module.add_class('AdhocAlohaNoackIdealPhyHelper')
+    ## spectrum-model.h: ns3::BandInfo [struct]
+    module.add_class('BandInfo')
     ## microwave-oven-spectrum-value-helper.h: ns3::MicrowaveOvenSpectrumValueHelper [class]
     module.add_class('MicrowaveOvenSpectrumValueHelper')
     ## multi-model-spectrum-channel.h: ns3::RxSpectrumModelInfo [class]
     module.add_class('RxSpectrumModelInfo')
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper [class]
+    module.add_class('SpectrumAnalyzerHelper')
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper [class]
+    module.add_class('SpectrumChannelHelper')
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper [class]
+    module.add_class('SpectrumPhyHelper')
+    ## spectrum-type.h: ns3::SpectrumType [class]
+    module.add_class('SpectrumType')
+    ## spectrum-type.h: ns3::SpectrumTypeFactory [class]
+    module.add_class('SpectrumTypeFactory')
     ## multi-model-spectrum-channel.h: ns3::TxSpectrumModelInfo [class]
     module.add_class('TxSpectrumModelInfo')
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper [class]
+    module.add_class('WaveformGeneratorHelper')
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValue5MhzFactory [class]
     module.add_class('WifiSpectrumValue5MhzFactory', allow_subclassing=True)
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValueHelper [class]
     module.add_class('WifiSpectrumValueHelper', allow_subclassing=True)
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumConverter', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumConverter>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumModel', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumModel>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## spectrum-converter.h: ns3::SpectrumConverter [class]
+    module.add_class('SpectrumConverter', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> >'])
     ## spectrum-error-model.h: ns3::SpectrumErrorModel [class]
     module.add_class('SpectrumErrorModel', parent=root_module['ns3::Object'])
     ## spectrum-interference.h: ns3::SpectrumInterference [class]
     module.add_class('SpectrumInterference', parent=root_module['ns3::Object'])
+    ## spectrum-model.h: ns3::SpectrumModel [class]
+    module.add_class('SpectrumModel', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> >'])
+    ## spectrum-phy.h: ns3::SpectrumPhy [class]
+    module.add_class('SpectrumPhy', parent=root_module['ns3::Object'])
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel [class]
+    module.add_class('SpectrumPropagationLossModel', parent=root_module['ns3::Object'])
+    ## spectrum-value.h: ns3::SpectrumValue [class]
+    module.add_class('SpectrumValue', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> >'])
     ## waveform-generator.h: ns3::WaveformGenerator [class]
     module.add_class('WaveformGenerator', parent=root_module['ns3::SpectrumPhy'])
     ## aloha-noack-mac-header.h: ns3::AlohaNoackMacHeader [class]
     module.add_class('AlohaNoackMacHeader', parent=root_module['ns3::Header'])
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel [class]
+    module.add_class('FriisSpectrumPropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy [class]
     module.add_class('HalfDuplexIdealPhy', parent=root_module['ns3::SpectrumPhy'])
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy::State [enumeration]
@@ -31,6 +65,8 @@
     module.add_class('ShannonSpectrumErrorModel', parent=root_module['ns3::SpectrumErrorModel'])
     ## spectrum-analyzer.h: ns3::SpectrumAnalyzer [class]
     module.add_class('SpectrumAnalyzer', parent=root_module['ns3::SpectrumPhy'])
+    ## spectrum-channel.h: ns3::SpectrumChannel [class]
+    module.add_class('SpectrumChannel', parent=root_module['ns3::Channel'])
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice [class]
     module.add_class('AlohaNoackNetDevice', parent=root_module['ns3::NetDevice'])
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice::State [enumeration]
@@ -39,6 +75,11 @@
     module.add_class('MultiModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
     ## single-model-spectrum-channel.h: ns3::SingleModelSpectrumChannel [class]
     module.add_class('SingleModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
+    module.add_container('ns3::SpectrumConverterMap_t', ('unsigned int', 'ns3::SpectrumConverter'), container_type='map')
+    module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
@@ -48,6 +89,12 @@
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >', 'ns3::RxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >*', 'ns3::RxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >&', 'ns3::RxSpectrumModelInfoMap_t&')
+    typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', 'ns3::Bands')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', 'ns3::Bands*')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', 'ns3::Bands&')
     
     ## Register a nested module for the namespace Config
     
@@ -140,24 +187,98 @@
     
 
 def register_methods(root_module):
+    register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, root_module['ns3::AdhocAlohaNoackIdealPhyHelper'])
+    register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo'])
     register_Ns3MicrowaveOvenSpectrumValueHelper_methods(root_module, root_module['ns3::MicrowaveOvenSpectrumValueHelper'])
     register_Ns3RxSpectrumModelInfo_methods(root_module, root_module['ns3::RxSpectrumModelInfo'])
+    register_Ns3SpectrumAnalyzerHelper_methods(root_module, root_module['ns3::SpectrumAnalyzerHelper'])
+    register_Ns3SpectrumChannelHelper_methods(root_module, root_module['ns3::SpectrumChannelHelper'])
+    register_Ns3SpectrumPhyHelper_methods(root_module, root_module['ns3::SpectrumPhyHelper'])
+    register_Ns3SpectrumType_methods(root_module, root_module['ns3::SpectrumType'])
+    register_Ns3SpectrumTypeFactory_methods(root_module, root_module['ns3::SpectrumTypeFactory'])
     register_Ns3TxSpectrumModelInfo_methods(root_module, root_module['ns3::TxSpectrumModelInfo'])
+    register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper'])
     register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory'])
     register_Ns3WifiSpectrumValueHelper_methods(root_module, root_module['ns3::WifiSpectrumValueHelper'])
+    register_Ns3SpectrumConverter_methods(root_module, root_module['ns3::SpectrumConverter'])
     register_Ns3SpectrumErrorModel_methods(root_module, root_module['ns3::SpectrumErrorModel'])
     register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference'])
+    register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel'])
+    register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy'])
+    register_Ns3SpectrumPropagationLossModel_methods(root_module, root_module['ns3::SpectrumPropagationLossModel'])
+    register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue'])
     register_Ns3WaveformGenerator_methods(root_module, root_module['ns3::WaveformGenerator'])
     register_Ns3AlohaNoackMacHeader_methods(root_module, root_module['ns3::AlohaNoackMacHeader'])
+    register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, root_module['ns3::FriisSpectrumPropagationLossModel'])
     register_Ns3HalfDuplexIdealPhy_methods(root_module, root_module['ns3::HalfDuplexIdealPhy'])
     register_Ns3NonCommunicatingNetDevice_methods(root_module, root_module['ns3::NonCommunicatingNetDevice'])
     register_Ns3ShannonSpectrumErrorModel_methods(root_module, root_module['ns3::ShannonSpectrumErrorModel'])
     register_Ns3SpectrumAnalyzer_methods(root_module, root_module['ns3::SpectrumAnalyzer'])
+    register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel'])
     register_Ns3AlohaNoackNetDevice_methods(root_module, root_module['ns3::AlohaNoackNetDevice'])
     register_Ns3MultiModelSpectrumChannel_methods(root_module, root_module['ns3::MultiModelSpectrumChannel'])
     register_Ns3SingleModelSpectrumChannel_methods(root_module, root_module['ns3::SingleModelSpectrumChannel'])
     return
 
+def register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, cls):
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper(ns3::AdhocAlohaNoackIdealPhyHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AdhocAlohaNoackIdealPhyHelper const &', 'arg0')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper() [constructor]
+    cls.add_constructor([])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> noisePsd) [member function]
+    cls.add_method('SetNoisePowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'noisePsd')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    return
+
+def register_Ns3BandInfo_methods(root_module, cls):
+    ## spectrum-model.h: ns3::BandInfo::BandInfo() [constructor]
+    cls.add_constructor([])
+    ## spectrum-model.h: ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BandInfo const &', 'arg0')])
+    ## spectrum-model.h: ns3::BandInfo::fc [variable]
+    cls.add_instance_attribute('fc', 'double', is_const=False)
+    ## spectrum-model.h: ns3::BandInfo::fh [variable]
+    cls.add_instance_attribute('fh', 'double', is_const=False)
+    ## spectrum-model.h: ns3::BandInfo::fl [variable]
+    cls.add_instance_attribute('fl', 'double', is_const=False)
+    return
+
 def register_Ns3MicrowaveOvenSpectrumValueHelper_methods(root_module, cls):
     ## microwave-oven-spectrum-value-helper.h: ns3::MicrowaveOvenSpectrumValueHelper::MicrowaveOvenSpectrumValueHelper() [constructor]
     cls.add_constructor([])
@@ -186,6 +307,144 @@
     cls.add_instance_attribute('m_rxSpectrumModel', 'ns3::Ptr< ns3::SpectrumModel const >', is_const=False)
     return
 
+def register_Ns3SpectrumAnalyzerHelper_methods(root_module, cls):
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper(ns3::SpectrumAnalyzerHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumAnalyzerHelper const &', 'arg0')])
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::EnableAsciiAll(std::string prefix) [member function]
+    cls.add_method('EnableAsciiAll', 
+                   'void', 
+                   [param('std::string', 'prefix')])
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetRxSpectrumModel(ns3::Ptr<ns3::SpectrumModel> m) [member function]
+    cls.add_method('SetRxSpectrumModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumModel >', 'm')])
+    return
+
+def register_Ns3SpectrumChannelHelper_methods(root_module, cls):
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper(ns3::SpectrumChannelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumChannelHelper const &', 'arg0')])
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::AddSpectrumPropagationLoss(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('AddSpectrumPropagationLoss', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumChannel> ns3::SpectrumChannelHelper::Create() const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-helper.h: static ns3::SpectrumChannelHelper ns3::SpectrumChannelHelper::Default() [member function]
+    cls.add_method('Default', 
+                   'ns3::SpectrumChannelHelper', 
+                   [], 
+                   is_static=True)
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetChannel(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetPropagationDelay(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPropagationDelay', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    return
+
+def register_Ns3SpectrumPhyHelper_methods(root_module, cls):
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper(ns3::SpectrumPhyHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPhyHelper const &', 'arg0')])
+    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumPhy> ns3::SpectrumPhyHelper::Create(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::NetDevice> device) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::SpectrumPhy >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_const=True)
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhy(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    return
+
+def register_Ns3SpectrumType_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## spectrum-type.h: ns3::SpectrumType::SpectrumType(ns3::SpectrumType const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumType const &', 'arg0')])
+    ## spectrum-type.h: std::string ns3::SpectrumType::GetName() const [member function]
+    cls.add_method('GetName', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## spectrum-type.h: uint32_t ns3::SpectrumType::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SpectrumTypeFactory_methods(root_module, cls):
+    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory() [constructor]
+    cls.add_constructor([])
+    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory(ns3::SpectrumTypeFactory const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumTypeFactory const &', 'arg0')])
+    ## spectrum-type.h: static ns3::SpectrumType ns3::SpectrumTypeFactory::Create(std::string name) [member function]
+    cls.add_method('Create', 
+                   'ns3::SpectrumType', 
+                   [param('std::string', 'name')], 
+                   is_static=True)
+    ## spectrum-type.h: static std::string ns3::SpectrumTypeFactory::GetNameByUid(uint32_t uid) [member function]
+    cls.add_method('GetNameByUid', 
+                   'std::string', 
+                   [param('uint32_t', 'uid')], 
+                   is_static=True)
+    return
+
 def register_Ns3TxSpectrumModelInfo_methods(root_module, cls):
     ## multi-model-spectrum-channel.h: ns3::TxSpectrumModelInfo::TxSpectrumModelInfo(ns3::TxSpectrumModelInfo const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TxSpectrumModelInfo const &', 'arg0')])
@@ -197,6 +456,48 @@
     cls.add_instance_attribute('m_txSpectrumModel', 'ns3::Ptr< ns3::SpectrumModel const >', is_const=False)
     return
 
+def register_Ns3WaveformGeneratorHelper_methods(root_module, cls):
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper(ns3::WaveformGeneratorHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WaveformGeneratorHelper const &', 'arg0')])
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper() [constructor]
+    cls.add_constructor([])
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    return
+
 def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls):
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor]
     cls.add_constructor([])
@@ -241,6 +542,20 @@
                    is_pure_virtual=True, is_virtual=True)
     return
 
+def register_Ns3SpectrumConverter_methods(root_module, cls):
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::SpectrumConverter const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumConverter const &', 'arg0')])
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::Ptr<ns3::SpectrumModel const> fromSpectrumModel, ns3::Ptr<ns3::SpectrumModel const> toSpectrumModel) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'fromSpectrumModel'), param('ns3::Ptr< ns3::SpectrumModel const >', 'toSpectrumModel')])
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter() [constructor]
+    cls.add_constructor([])
+    ## spectrum-converter.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumConverter::Convert(ns3::Ptr<ns3::SpectrumValue const> vvf) const [member function]
+    cls.add_method('Convert', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'vvf')], 
+                   is_const=True)
+    return
+
 def register_Ns3SpectrumErrorModel_methods(root_module, cls):
     ## spectrum-error-model.h: ns3::SpectrumErrorModel::SpectrumErrorModel() [constructor]
     cls.add_constructor([])
@@ -295,6 +610,184 @@
                    visibility='protected', is_virtual=True)
     return
 
+def register_Ns3SpectrumModel_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')])
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(std::vector<double, std::allocator<double> > centerFreqs) [constructor]
+    cls.add_constructor([param('std::vector< double >', 'centerFreqs')])
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor]
+    cls.add_constructor([param('ns3::Bands', 'bands')])
+    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: size_t ns3::SpectrumModel::GetNumBands() const [member function]
+    cls.add_method('GetNumBands', 
+                   'size_t', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'ns3::SpectrumModelUid_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SpectrumPhy_methods(root_module, cls):
+    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy(ns3::SpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPhy const &', 'arg0')])
+    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetMobility() [member function]
+    cls.add_method('GetMobility', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumPhy::GetRxSpectrumModel() const [member function]
+    cls.add_method('GetRxSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## spectrum-phy.h: static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'd')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
+    cls.add_method('SetMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'm')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
+    cls.add_method('StartRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3SpectrumPropagationLossModel_methods(root_module, cls):
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel(ns3::SpectrumPropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPropagationLossModel const &', 'arg0')])
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::CalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('CalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True)
+    ## spectrum-propagation-loss-model.h: static ns3::TypeId ns3::SpectrumPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::SetNext(ns3::Ptr<ns3::SpectrumPropagationLossModel> next) [member function]
+    cls.add_method('SetNext', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'next')])
+    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3SpectrumValue_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_unary_numeric_operator('-')
+    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('*=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('double', 'right'))
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')])
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::Ptr<ns3::SpectrumModel const> sm) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')])
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue() [constructor]
+    cls.add_constructor([])
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsBegin() const [member function]
+    cls.add_method('ConstBandsBegin', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsEnd() const [member function]
+    cls.add_method('ConstBandsEnd', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesBegin() const [member function]
+    cls.add_method('ConstValuesBegin', 
+                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesEnd() const [member function]
+    cls.add_method('ConstValuesEnd', 
+                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumValue::GetSpectrumModel() const [member function]
+    cls.add_method('GetSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function]
+    cls.add_method('GetSpectrumModelUid', 
+                   'ns3::SpectrumModelUid_t', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesBegin() [member function]
+    cls.add_method('ValuesBegin', 
+                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
+                   [])
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesEnd() [member function]
+    cls.add_method('ValuesEnd', 
+                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
+                   [])
+    return
+
 def register_Ns3WaveformGenerator_methods(root_module, cls):
     ## waveform-generator.h: ns3::WaveformGenerator::WaveformGenerator(ns3::WaveformGenerator const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::WaveformGenerator const &', 'arg0')])
@@ -443,6 +936,28 @@
                    [param('ns3::Mac48Address', 'source')])
     return
 
+def register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, cls):
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel(ns3::FriisSpectrumPropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FriisSpectrumPropagationLossModel const &', 'arg0')])
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## friis-spectrum-propagation-loss.h: double ns3::FriisSpectrumPropagationLossModel::CalculateLoss(double f, double d) const [member function]
+    cls.add_method('CalculateLoss', 
+                   'double', 
+                   [param('double', 'f'), param('double', 'd')], 
+                   is_const=True)
+    ## friis-spectrum-propagation-loss.h: ns3::Ptr<ns3::SpectrumValue> ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## friis-spectrum-propagation-loss.h: static ns3::TypeId ns3::FriisSpectrumPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3HalfDuplexIdealPhy_methods(root_module, cls):
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy::HalfDuplexIdealPhy(ns3::HalfDuplexIdealPhy const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HalfDuplexIdealPhy const &', 'arg0')])
@@ -784,6 +1299,38 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3SpectrumChannel_methods(root_module, cls):
+    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel() [constructor]
+    cls.add_constructor([])
+    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')])
+    ## spectrum-channel.h: void ns3::SpectrumChannel::AddRx(ns3::Ptr<ns3::SpectrumPhy> phy) [member function]
+    cls.add_method('AddRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr<ns3::SpectrumPropagationLossModel> loss) [member function]
+    cls.add_method('AddSpectrumPropagationLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr<ns3::PropagationDelayModel> delay) [member function]
+    cls.add_method('SetPropagationDelayModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::StartTx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue> txPsd, ns3::SpectrumType st, ns3::Time duration, ns3::Ptr<ns3::SpectrumPhy> sender) [member function]
+    cls.add_method('StartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration'), param('ns3::Ptr< ns3::SpectrumPhy >', 'sender')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3AlohaNoackNetDevice_methods(root_module, cls):
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice::AlohaNoackNetDevice(ns3::AlohaNoackNetDevice const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::AlohaNoackNetDevice const &', 'arg0')])
@@ -1075,6 +1622,38 @@
 
 def register_functions(root_module):
     module = root_module
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log10(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log10', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log2(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log2', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern double ns3::Norm(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Norm', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(ns3::SpectrumValue const & base, double exp) [free function]
+    module.add_function('Pow', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'base'), param('double', 'exp')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(double base, ns3::SpectrumValue const & exp) [free function]
+    module.add_function('Pow', 
+                        'ns3::SpectrumValue', 
+                        [param('double', 'base'), param('ns3::SpectrumValue const &', 'exp')])
+    ## spectrum-value.h: extern double ns3::Prod(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Prod', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
+    ## spectrum-value.h: extern double ns3::Sum(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Sum', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_static_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_static_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,22 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry [class]
+    module.add_class('Ipv4MulticastRoutingTableEntry')
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry [class]
+    module.add_class('Ipv4RoutingTableEntry')
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper [class]
+    module.add_class('Ipv4StaticRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry [class]
+    module.add_class('Ipv6MulticastRoutingTableEntry')
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry [class]
+    module.add_class('Ipv6RoutingTableEntry')
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper [class]
+    module.add_class('Ipv6StaticRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
+    module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting [class]
+    module.add_class('Ipv6StaticRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +111,635 @@
     
 
 def register_methods(root_module):
+    register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv4MulticastRoutingTableEntry'])
+    register_Ns3Ipv4RoutingTableEntry_methods(root_module, root_module['ns3::Ipv4RoutingTableEntry'])
+    register_Ns3Ipv4StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv4StaticRoutingHelper'])
+    register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv6MulticastRoutingTableEntry'])
+    register_Ns3Ipv6RoutingTableEntry_methods(root_module, root_module['ns3::Ipv6RoutingTableEntry'])
+    register_Ns3Ipv6StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv6StaticRoutingHelper'])
+    register_Ns3Ipv4StaticRouting_methods(root_module, root_module['ns3::Ipv4StaticRouting'])
+    register_Ns3Ipv6StaticRouting_methods(root_module, root_module['ns3::Ipv6StaticRouting'])
+    return
+
+def register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const &', 'route')])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const *', 'route')])
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('CreateMulticastRoute', 
+                   'ns3::Ipv4MulticastRoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetInputInterface() const [member function]
+    cls.add_method('GetInputInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
+    cls.add_method('GetNOutputInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
+    cls.add_method('GetOutputInterface', 
+                   'uint32_t', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
+    cls.add_method('GetOutputInterfaces', 
+                   'std::vector< unsigned int >', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv4RoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const &', 'route')])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const *', 'route')])
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateDefaultRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDestNetwork() const [member function]
+    cls.add_method('GetDestNetwork', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Mask ns3::Ipv4RoutingTableEntry::GetDestNetworkMask() const [member function]
+    cls.add_method('GetDestNetworkMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsDefault() const [member function]
+    cls.add_method('IsDefault', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsGateway() const [member function]
+    cls.add_method('IsGateway', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsHost() const [member function]
+    cls.add_method('IsHost', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsNetwork() const [member function]
+    cls.add_method('IsNetwork', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv4StaticRoutingHelper_methods(root_module, cls):
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper(ns3::Ipv4StaticRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4StaticRoutingHelper const &', 'arg0')])
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper * ns3::Ipv4StaticRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4StaticRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4StaticRouting> ns3::Ipv4StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv4> ipv4) const [member function]
+    cls.add_method('GetStaticRouting', 
+                   'ns3::Ptr< ns3::Ipv4StaticRouting >', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_const=True)
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ptr<ns3::NetDevice> nd) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, std::string ndName) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('std::string', 'ndName')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, ns3::Ptr<ns3::NetDevice> nd) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, std::string ndName) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('std::string', 'ndName')])
+    return
+
+def register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const &', 'route')])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const *', 'route')])
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('CreateMulticastRoute', 
+                   'ns3::Ipv6MulticastRoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetInputInterface() const [member function]
+    cls.add_method('GetInputInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
+    cls.add_method('GetNOutputInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
+    cls.add_method('GetOutputInterface', 
+                   'uint32_t', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
+    cls.add_method('GetOutputInterfaces', 
+                   'std::vector< unsigned int >', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv6RoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const &', 'route')])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const *', 'route')])
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateDefaultRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address()) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address()')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDestNetwork() const [member function]
+    cls.add_method('GetDestNetwork', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Prefix ns3::Ipv6RoutingTableEntry::GetDestNetworkPrefix() const [member function]
+    cls.add_method('GetDestNetworkPrefix', 
+                   'ns3::Ipv6Prefix', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetPrefixToUse() const [member function]
+    cls.add_method('GetPrefixToUse', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsDefault() const [member function]
+    cls.add_method('IsDefault', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsGateway() const [member function]
+    cls.add_method('IsGateway', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsHost() const [member function]
+    cls.add_method('IsHost', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsNetwork() const [member function]
+    cls.add_method('IsNetwork', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: void ns3::Ipv6RoutingTableEntry::SetPrefixToUse(ns3::Ipv6Address prefix) [member function]
+    cls.add_method('SetPrefixToUse', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'prefix')])
+    return
+
+def register_Ns3Ipv6StaticRoutingHelper_methods(root_module, cls):
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper(ns3::Ipv6StaticRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6StaticRoutingHelper const &', 'arg0')])
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper * ns3::Ipv6StaticRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv6StaticRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6StaticRouting> ns3::Ipv6StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv6> ipv6) const [member function]
+    cls.add_method('GetStaticRouting', 
+                   'ns3::Ptr< ns3::Ipv6StaticRouting >', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_const=True)
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    return
+
+def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
+    cls.add_method('GetDefaultRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [])
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetMetric(uint32_t index) [member function]
+    cls.add_method('GetMetric', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
+    cls.add_method('GetMulticastRoute', 
+                   'ns3::Ipv4MulticastRoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
+    cls.add_method('GetNMulticastRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() const [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetRoute(uint32_t i) const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-static-routing.h: static ns3::TypeId ns3::Ipv4StaticRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'index')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'outputInterface')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('SetDefaultRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3Ipv6StaticRouting_methods(root_module, cls):
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting(ns3::Ipv6StaticRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6StaticRouting const &', 'arg0')])
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetDefaultRoute() [member function]
+    cls.add_method('GetDefaultRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [])
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetMetric(uint32_t index) [member function]
+    cls.add_method('GetMetric', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## ipv6-static-routing.h: ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
+    cls.add_method('GetMulticastRoute', 
+                   'ns3::Ipv6MulticastRoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNMulticastRoutes() const [member function]
+    cls.add_method('GetNMulticastRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNRoutes() [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [])
+    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetRoute(uint32_t i) [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: static ns3::TypeId ns3::Ipv6StaticRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::HasNetworkDest(ns3::Ipv6Address dest, uint32_t interfaceIndex) [member function]
+    cls.add_method('HasNetworkDest', 
+                   'bool', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interfaceIndex')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyAddRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyRemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RemoveMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'bool', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveMulticastRoute(uint32_t i) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(ns3::Ipv6Address network, ns3::Ipv6Prefix prefix, uint32_t ifIndex, ns3::Ipv6Address prefixToUse) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'prefix'), param('uint32_t', 'ifIndex'), param('ns3::Ipv6Address', 'prefixToUse')])
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv6Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'outputInterface')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
+    cls.add_method('SetDefaultRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
+    cls.add_method('SetIpv6', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_uan.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_uan.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,106 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## uan-mac-rc.h: ns3::Reservation [class]
+    module.add_class('Reservation')
+    ## uan-prop-model.h: ns3::Tap [class]
+    module.add_class('Tap')
+    ## uan-address.h: ns3::UanAddress [class]
+    module.add_class('UanAddress')
+    ## uan-address.h: ns3::UanAddress [class]
+    root_module['ns3::UanAddress'].implicitly_converts_to(root_module['ns3::Address'])
+    ## uan-helper.h: ns3::UanHelper [class]
+    module.add_class('UanHelper')
+    ## uan-tx-mode.h: ns3::UanModesList [class]
+    module.add_class('UanModesList')
+    ## uan-transducer.h: ns3::UanPacketArrival [class]
+    module.add_class('UanPacketArrival')
+    ## uan-prop-model.h: ns3::UanPdp [class]
+    module.add_class('UanPdp')
+    ## uan-phy.h: ns3::UanPhyListener [class]
+    module.add_class('UanPhyListener', allow_subclassing=True)
+    ## uan-tx-mode.h: ns3::UanTxMode [class]
+    module.add_class('UanTxMode')
+    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType [enumeration]
+    module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
+    ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
+    module.add_class('UanTxModeFactory')
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper [class]
+    module.add_class('AcousticModemEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
+    ## uan-header-common.h: ns3::UanHeaderCommon [class]
+    module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
+    module.add_class('UanHeaderRcAck', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts [class]
+    module.add_class('UanHeaderRcCts', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal [class]
+    module.add_class('UanHeaderRcCtsGlobal', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcData [class]
+    module.add_class('UanHeaderRcData', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts [class]
+    module.add_class('UanHeaderRcRts', parent=root_module['ns3::Header'])
+    ## uan-mac.h: ns3::UanMac [class]
+    module.add_class('UanMac', parent=root_module['ns3::Object'])
+    ## uan-mac-aloha.h: ns3::UanMacAloha [class]
+    module.add_class('UanMacAloha', parent=root_module['ns3::UanMac'])
+    ## uan-mac-cw.h: ns3::UanMacCw [class]
+    module.add_class('UanMacCw', parent=[root_module['ns3::UanMac'], root_module['ns3::UanPhyListener']])
+    ## uan-mac-rc.h: ns3::UanMacRc [class]
+    module.add_class('UanMacRc', parent=root_module['ns3::UanMac'])
+    ## uan-mac-rc.h: ns3::UanMacRc [enumeration]
+    module.add_enum('', ['TYPE_DATA', 'TYPE_GWPING', 'TYPE_RTS', 'TYPE_CTS', 'TYPE_ACK'], outer_class=root_module['ns3::UanMacRc'])
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw [class]
+    module.add_class('UanMacRcGw', parent=root_module['ns3::UanMac'])
+    ## uan-noise-model.h: ns3::UanNoiseModel [class]
+    module.add_class('UanNoiseModel', parent=root_module['ns3::Object'])
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault [class]
+    module.add_class('UanNoiseModelDefault', parent=root_module['ns3::UanNoiseModel'])
+    ## uan-phy.h: ns3::UanPhy [class]
+    module.add_class('UanPhy', parent=root_module['ns3::Object'])
+    ## uan-phy.h: ns3::UanPhy::State [enumeration]
+    module.add_enum('State', ['IDLE', 'CCABUSY', 'RX', 'TX', 'SLEEP'], outer_class=root_module['ns3::UanPhy'])
+    ## uan-phy.h: ns3::UanPhyCalcSinr [class]
+    module.add_class('UanPhyCalcSinr', parent=root_module['ns3::Object'])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault [class]
+    module.add_class('UanPhyCalcSinrDefault', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual [class]
+    module.add_class('UanPhyCalcSinrDual', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk [class]
+    module.add_class('UanPhyCalcSinrFhFsk', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-dual.h: ns3::UanPhyDual [class]
+    module.add_class('UanPhyDual', parent=root_module['ns3::UanPhy'])
+    ## uan-phy-gen.h: ns3::UanPhyGen [class]
+    module.add_class('UanPhyGen', parent=root_module['ns3::UanPhy'])
+    ## uan-phy.h: ns3::UanPhyPer [class]
+    module.add_class('UanPhyPer', parent=root_module['ns3::Object'])
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault [class]
+    module.add_class('UanPhyPerGenDefault', parent=root_module['ns3::UanPhyPer'])
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem [class]
+    module.add_class('UanPhyPerUmodem', parent=root_module['ns3::UanPhyPer'])
+    ## uan-prop-model.h: ns3::UanPropModel [class]
+    module.add_class('UanPropModel', parent=root_module['ns3::Object'])
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal [class]
+    module.add_class('UanPropModelIdeal', parent=root_module['ns3::UanPropModel'])
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp [class]
+    module.add_class('UanPropModelThorp', parent=root_module['ns3::UanPropModel'])
+    ## uan-transducer.h: ns3::UanTransducer [class]
+    module.add_class('UanTransducer', parent=root_module['ns3::Object'])
+    ## uan-transducer.h: ns3::UanTransducer::State [enumeration]
+    module.add_enum('State', ['TX', 'RX'], outer_class=root_module['ns3::UanTransducer'])
+    ## uan-transducer-hd.h: ns3::UanTransducerHd [class]
+    module.add_class('UanTransducerHd', parent=root_module['ns3::UanTransducer'])
+    ## uan-channel.h: ns3::UanChannel [class]
+    module.add_class('UanChannel', parent=root_module['ns3::Channel'])
+    ## uan-tx-mode.h: ns3::UanModesListChecker [class]
+    module.add_class('UanModesListChecker', parent=root_module['ns3::AttributeChecker'])
+    ## uan-tx-mode.h: ns3::UanModesListValue [class]
+    module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
+    ## uan-net-device.h: ns3::UanNetDevice [class]
+    module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel [class]
+    module.add_class('AcousticModemEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    module.add_container('std::vector< ns3::Tap >', 'ns3::Tap', container_type='vector')
+    module.add_container('std::list< ns3::UanPacketArrival >', 'ns3::UanPacketArrival', container_type='list')
     
     ## Register a nested module for the namespace Config
     
@@ -95,10 +195,2683 @@
     
 
 def register_methods(root_module):
+    register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
+    register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
+    register_Ns3UanAddress_methods(root_module, root_module['ns3::UanAddress'])
+    register_Ns3UanHelper_methods(root_module, root_module['ns3::UanHelper'])
+    register_Ns3UanModesList_methods(root_module, root_module['ns3::UanModesList'])
+    register_Ns3UanPacketArrival_methods(root_module, root_module['ns3::UanPacketArrival'])
+    register_Ns3UanPdp_methods(root_module, root_module['ns3::UanPdp'])
+    register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
+    register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
+    register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
+    register_Ns3AcousticModemEnergyModelHelper_methods(root_module, root_module['ns3::AcousticModemEnergyModelHelper'])
+    register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
+    register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
+    register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
+    register_Ns3UanHeaderRcCtsGlobal_methods(root_module, root_module['ns3::UanHeaderRcCtsGlobal'])
+    register_Ns3UanHeaderRcData_methods(root_module, root_module['ns3::UanHeaderRcData'])
+    register_Ns3UanHeaderRcRts_methods(root_module, root_module['ns3::UanHeaderRcRts'])
+    register_Ns3UanMac_methods(root_module, root_module['ns3::UanMac'])
+    register_Ns3UanMacAloha_methods(root_module, root_module['ns3::UanMacAloha'])
+    register_Ns3UanMacCw_methods(root_module, root_module['ns3::UanMacCw'])
+    register_Ns3UanMacRc_methods(root_module, root_module['ns3::UanMacRc'])
+    register_Ns3UanMacRcGw_methods(root_module, root_module['ns3::UanMacRcGw'])
+    register_Ns3UanNoiseModel_methods(root_module, root_module['ns3::UanNoiseModel'])
+    register_Ns3UanNoiseModelDefault_methods(root_module, root_module['ns3::UanNoiseModelDefault'])
+    register_Ns3UanPhy_methods(root_module, root_module['ns3::UanPhy'])
+    register_Ns3UanPhyCalcSinr_methods(root_module, root_module['ns3::UanPhyCalcSinr'])
+    register_Ns3UanPhyCalcSinrDefault_methods(root_module, root_module['ns3::UanPhyCalcSinrDefault'])
+    register_Ns3UanPhyCalcSinrDual_methods(root_module, root_module['ns3::UanPhyCalcSinrDual'])
+    register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, root_module['ns3::UanPhyCalcSinrFhFsk'])
+    register_Ns3UanPhyDual_methods(root_module, root_module['ns3::UanPhyDual'])
+    register_Ns3UanPhyGen_methods(root_module, root_module['ns3::UanPhyGen'])
+    register_Ns3UanPhyPer_methods(root_module, root_module['ns3::UanPhyPer'])
+    register_Ns3UanPhyPerGenDefault_methods(root_module, root_module['ns3::UanPhyPerGenDefault'])
+    register_Ns3UanPhyPerUmodem_methods(root_module, root_module['ns3::UanPhyPerUmodem'])
+    register_Ns3UanPropModel_methods(root_module, root_module['ns3::UanPropModel'])
+    register_Ns3UanPropModelIdeal_methods(root_module, root_module['ns3::UanPropModelIdeal'])
+    register_Ns3UanPropModelThorp_methods(root_module, root_module['ns3::UanPropModelThorp'])
+    register_Ns3UanTransducer_methods(root_module, root_module['ns3::UanTransducer'])
+    register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
+    register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
+    register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
+    register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
+    register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
+    register_Ns3AcousticModemEnergyModel_methods(root_module, root_module['ns3::AcousticModemEnergyModel'])
+    return
+
+def register_Ns3Reservation_methods(root_module, cls):
+    ## uan-mac-rc.h: ns3::Reservation::Reservation(ns3::Reservation const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Reservation const &', 'arg0')])
+    ## uan-mac-rc.h: ns3::Reservation::Reservation() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc.h: ns3::Reservation::Reservation(std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > & list, uint8_t frameNo, uint32_t maxPkts=0) [constructor]
+    cls.add_constructor([param('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > &', 'list'), param('uint8_t', 'frameNo'), param('uint32_t', 'maxPkts', default_value='0')])
+    ## uan-mac-rc.h: void ns3::Reservation::AddTimestamp(ns3::Time t) [member function]
+    cls.add_method('AddTimestamp', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetLength() const [member function]
+    cls.add_method('GetLength', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetNoFrames() const [member function]
+    cls.add_method('GetNoFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > const & ns3::Reservation::GetPktList() const [member function]
+    cls.add_method('GetPktList', 
+                   'std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > const &', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: ns3::Time ns3::Reservation::GetTimestamp(uint8_t n) const [member function]
+    cls.add_method('GetTimestamp', 
+                   'ns3::Time', 
+                   [param('uint8_t', 'n')], 
+                   is_const=True)
+    ## uan-mac-rc.h: void ns3::Reservation::IncrementRetry() [member function]
+    cls.add_method('IncrementRetry', 
+                   'void', 
+                   [])
+    ## uan-mac-rc.h: bool ns3::Reservation::IsTransmitted() const [member function]
+    cls.add_method('IsTransmitted', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: void ns3::Reservation::SetFrameNo(uint8_t fn) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'fn')])
+    ## uan-mac-rc.h: void ns3::Reservation::SetTransmitted(bool t=true) [member function]
+    cls.add_method('SetTransmitted', 
+                   'void', 
+                   [param('bool', 't', default_value='true')])
+    return
+
+def register_Ns3Tap_methods(root_module, cls):
+    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Tap const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Tap const &', 'arg0')])
+    ## uan-prop-model.h: ns3::Tap::Tap() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Time delay, std::complex<double> amp) [constructor]
+    cls.add_constructor([param('ns3::Time', 'delay'), param('std::complex< double >', 'amp')])
+    ## uan-prop-model.h: std::complex<double> ns3::Tap::GetAmp() const [member function]
+    cls.add_method('GetAmp', 
+                   'std::complex< double >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Time ns3::Tap::GetDelay() const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanAddress_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
+    ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
+    ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
+    cls.add_constructor([])
+    ## uan-address.h: ns3::UanAddress::UanAddress(uint8_t addr) [constructor]
+    cls.add_constructor([param('uint8_t', 'addr')])
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::Allocate() [member function]
+    cls.add_method('Allocate', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_static=True)
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::ConvertFrom(ns3::Address const & address) [member function]
+    cls.add_method('ConvertFrom', 
+                   'ns3::UanAddress', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_static=True)
+    ## uan-address.h: void ns3::UanAddress::CopyFrom(uint8_t const * pBuffer) [member function]
+    cls.add_method('CopyFrom', 
+                   'void', 
+                   [param('uint8_t const *', 'pBuffer')])
+    ## uan-address.h: void ns3::UanAddress::CopyTo(uint8_t * pBuffer) [member function]
+    cls.add_method('CopyTo', 
+                   'void', 
+                   [param('uint8_t *', 'pBuffer')])
+    ## uan-address.h: uint8_t ns3::UanAddress::GetAsInt() const [member function]
+    cls.add_method('GetAsInt', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::GetBroadcast() [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_static=True)
+    ## uan-address.h: static bool ns3::UanAddress::IsMatchingType(ns3::Address const & address) [member function]
+    cls.add_method('IsMatchingType', 
+                   'bool', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_static=True)
+    return
+
+def register_Ns3UanHelper_methods(root_module, cls):
+    ## uan-helper.h: ns3::UanHelper::UanHelper(ns3::UanHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHelper const &', 'arg0')])
+    ## uan-helper.h: ns3::UanHelper::UanHelper() [constructor]
+    cls.add_constructor([])
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NetDeviceContainer d) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('ns3::NetDeviceContainer', 'd')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NodeContainer n) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('ns3::NodeContainer', 'n')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAsciiAll(std::ostream & os) [member function]
+    cls.add_method('EnableAsciiAll', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c, ns3::Ptr<ns3::UanChannel> channel) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_const=True)
+    ## uan-helper.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanHelper::Install(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::UanChannel> channel) const [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_const=True)
+    ## uan-helper.h: void ns3::UanHelper::SetMac(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## uan-helper.h: void ns3::UanHelper::SetPhy(std::string phyType, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('std::string', 'phyType'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## uan-helper.h: void ns3::UanHelper::SetTransducer(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    return
+
+def register_Ns3UanModesList_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-tx-mode.h: ns3::UanModesList::UanModesList(ns3::UanModesList const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesList const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanModesList::UanModesList() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: void ns3::UanModesList::AppendMode(ns3::UanTxMode mode) [member function]
+    cls.add_method('AppendMode', 
+                   'void', 
+                   [param('ns3::UanTxMode', 'mode')])
+    ## uan-tx-mode.h: void ns3::UanModesList::DeleteMode(uint32_t num) [member function]
+    cls.add_method('DeleteMode', 
+                   'void', 
+                   [param('uint32_t', 'num')])
+    ## uan-tx-mode.h: uint32_t ns3::UanModesList::GetNModes() const [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPacketArrival_methods(root_module, cls):
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::UanPacketArrival const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPacketArrival const &', 'arg0')])
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp, ns3::Time arrTime) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp'), param('ns3::Time', 'arrTime')])
+    ## uan-transducer.h: ns3::Time ns3::UanPacketArrival::GetArrivalTime() const [member function]
+    cls.add_method('GetArrivalTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::Ptr<ns3::Packet> ns3::UanPacketArrival::GetPacket() const [member function]
+    cls.add_method('GetPacket', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::UanPdp ns3::UanPacketArrival::GetPdp() const [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: double ns3::UanPacketArrival::GetRxPowerDb() const [member function]
+    cls.add_method('GetRxPowerDb', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::UanTxMode const & ns3::UanPacketArrival::GetTxMode() const [member function]
+    cls.add_method('GetTxMode', 
+                   'ns3::UanTxMode const &', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPdp_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(ns3::UanPdp const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPdp const &', 'arg0')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<ns3::Tap, std::allocator<ns3::Tap> > taps, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< ns3::Tap >', 'taps'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<std::complex<double>,std::allocator<std::complex<double> > > arrivals, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< std::complex< double > >', 'arrivals'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<double, std::allocator<double> > arrivals, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< double >', 'arrivals'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: static ns3::UanPdp ns3::UanPdp::CreateImpulsePdp() [member function]
+    cls.add_method('CreateImpulsePdp', 
+                   'ns3::UanPdp', 
+                   [], 
+                   is_static=True)
+    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetBegin() const [member function]
+    cls.add_method('GetBegin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetEnd() const [member function]
+    cls.add_method('GetEnd', 
+                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: uint32_t ns3::UanPdp::GetNTaps() const [member function]
+    cls.add_method('GetNTaps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Time ns3::UanPdp::GetResolution() const [member function]
+    cls.add_method('GetResolution', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Tap const & ns3::UanPdp::GetTap(uint32_t i) const [member function]
+    cls.add_method('GetTap', 
+                   'ns3::Tap const &', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## uan-prop-model.h: void ns3::UanPdp::SetNTaps(uint32_t nTaps) [member function]
+    cls.add_method('SetNTaps', 
+                   'void', 
+                   [param('uint32_t', 'nTaps')])
+    ## uan-prop-model.h: void ns3::UanPdp::SetResolution(ns3::Time resolution) [member function]
+    cls.add_method('SetResolution', 
+                   'void', 
+                   [param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: void ns3::UanPdp::SetTap(std::complex<double> arrival, uint32_t index) [member function]
+    cls.add_method('SetTap', 
+                   'void', 
+                   [param('std::complex< double >', 'arrival'), param('uint32_t', 'index')])
+    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsC(ns3::Time begin, ns3::Time end) const [member function]
+    cls.add_method('SumTapsC', 
+                   'std::complex< double >', 
+                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
+                   is_const=True)
+    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsFromMaxC(ns3::Time delay, ns3::Time duration) const [member function]
+    cls.add_method('SumTapsFromMaxC', 
+                   'std::complex< double >', 
+                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
+                   is_const=True)
+    ## uan-prop-model.h: double ns3::UanPdp::SumTapsFromMaxNc(ns3::Time delay, ns3::Time duration) const [member function]
+    cls.add_method('SumTapsFromMaxNc', 
+                   'double', 
+                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
+                   is_const=True)
+    ## uan-prop-model.h: double ns3::UanPdp::SumTapsNc(ns3::Time begin, ns3::Time end) const [member function]
+    cls.add_method('SumTapsNc', 
+                   'double', 
+                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPhyListener_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener(ns3::UanPhyListener const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyListener const &', 'arg0')])
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaEnd() [member function]
+    cls.add_method('NotifyCcaEnd', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaStart() [member function]
+    cls.add_method('NotifyCcaStart', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxStart() [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanTxMode_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode(ns3::UanTxMode const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTxMode const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetBandwidthHz() const [member function]
+    cls.add_method('GetBandwidthHz', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetCenterFreqHz() const [member function]
+    cls.add_method('GetCenterFreqHz', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetConstellationSize() const [member function]
+    cls.add_method('GetConstellationSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetDataRateBps() const [member function]
+    cls.add_method('GetDataRateBps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType ns3::UanTxMode::GetModType() const [member function]
+    cls.add_method('GetModType', 
+                   'ns3::UanTxMode::ModulationType', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: std::string ns3::UanTxMode::GetName() const [member function]
+    cls.add_method('GetName', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetPhyRateSps() const [member function]
+    cls.add_method('GetPhyRateSps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanTxModeFactory_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory(ns3::UanTxModeFactory const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTxModeFactory const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::CreateMode(ns3::UanTxMode::ModulationType type, uint32_t dataRateBps, uint32_t phyRateSps, uint32_t cfHz, uint32_t bwHz, uint32_t constSize, std::string name) [member function]
+    cls.add_method('CreateMode', 
+                   'ns3::UanTxMode', 
+                   [param('ns3::UanTxMode::ModulationType', 'type'), param('uint32_t', 'dataRateBps'), param('uint32_t', 'phyRateSps'), param('uint32_t', 'cfHz'), param('uint32_t', 'bwHz'), param('uint32_t', 'constSize'), param('std::string', 'name')], 
+                   is_static=True)
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(std::string name) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('std::string', 'name')], 
+                   is_static=True)
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(uint32_t uid) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'uid')], 
+                   is_static=True)
+    return
+
+def register_Ns3AcousticModemEnergyModelHelper_methods(root_module, cls):
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper(ns3::AcousticModemEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AcousticModemEnergyModelHelper const &', 'arg0')])
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## acoustic-modem-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::AcousticModemEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3UanHeaderCommon_methods(root_module, cls):
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanHeaderCommon const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderCommon const &', 'arg0')])
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon() [constructor]
+    cls.add_constructor([])
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanAddress const src, ns3::UanAddress const dest, uint8_t type) [constructor]
+    cls.add_constructor([param('ns3::UanAddress const', 'src'), param('ns3::UanAddress const', 'dest'), param('uint8_t', 'type')])
+    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: ns3::TypeId ns3::UanHeaderCommon::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetSrc() const [member function]
+    cls.add_method('GetSrc', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: uint8_t ns3::UanHeaderCommon::GetType() const [member function]
+    cls.add_method('GetType', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: static ns3::TypeId ns3::UanHeaderCommon::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetDest(ns3::UanAddress dest) [member function]
+    cls.add_method('SetDest', 
+                   'void', 
+                   [param('ns3::UanAddress', 'dest')])
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetSrc(ns3::UanAddress src) [member function]
+    cls.add_method('SetSrc', 
+                   'void', 
+                   [param('ns3::UanAddress', 'src')])
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetType(uint8_t type) [member function]
+    cls.add_method('SetType', 
+                   'void', 
+                   [param('uint8_t', 'type')])
+    return
+
+def register_Ns3UanHeaderRcAck_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck(ns3::UanHeaderRcAck const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcAck const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::AddNackedFrame(uint8_t frame) [member function]
+    cls.add_method('AddNackedFrame', 
+                   'void', 
+                   [param('uint8_t', 'frame')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcAck::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: std::set<unsigned char, std::less<unsigned char>, std::allocator<unsigned char> > const & ns3::UanHeaderRcAck::GetNackedFrames() const [member function]
+    cls.add_method('GetNackedFrames', 
+                   'std::set< unsigned char > const &', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetNoNacks() const [member function]
+    cls.add_method('GetNoNacks', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcAck::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::SetFrameNo(uint8_t frameNo) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNo')])
+    return
+
+def register_Ns3UanHeaderRcCts_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(ns3::UanHeaderRcCts const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcCts const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(uint8_t frameNo, uint8_t retryNo, ns3::Time rtsTs, ns3::Time delay, ns3::UanAddress addr) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('ns3::Time', 'rtsTs'), param('ns3::Time', 'delay'), param('ns3::UanAddress', 'addr')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: ns3::UanAddress ns3::UanHeaderRcCts::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetDelayToTx() const [member function]
+    cls.add_method('GetDelayToTx', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCts::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetRtsTimeStamp() const [member function]
+    cls.add_method('GetRtsTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCts::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetDelayToTx(ns3::Time delay) [member function]
+    cls.add_method('SetDelayToTx', 
+                   'void', 
+                   [param('ns3::Time', 'delay')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetFrameNo(uint8_t frameNo) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNo')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRetryNo(uint8_t no) [member function]
+    cls.add_method('SetRetryNo', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRtsTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetRtsTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    return
+
+def register_Ns3UanHeaderRcCtsGlobal_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::UanHeaderRcCtsGlobal const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcCtsGlobal const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::Time wt, ns3::Time ts, uint16_t rate, uint16_t retryRate) [constructor]
+    cls.add_constructor([param('ns3::Time', 'wt'), param('ns3::Time', 'ts'), param('uint16_t', 'rate'), param('uint16_t', 'retryRate')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRateNum() const [member function]
+    cls.add_method('GetRateNum', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRetryRate() const [member function]
+    cls.add_method('GetRetryRate', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp() const [member function]
+    cls.add_method('GetTxTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetWindowTime() const [member function]
+    cls.add_method('GetWindowTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRateNum(uint16_t rate) [member function]
+    cls.add_method('SetRateNum', 
+                   'void', 
+                   [param('uint16_t', 'rate')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRetryRate(uint16_t rate) [member function]
+    cls.add_method('SetRetryRate', 
+                   'void', 
+                   [param('uint16_t', 'rate')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetTxTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetWindowTime(ns3::Time t) [member function]
+    cls.add_method('SetWindowTime', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    return
+
+def register_Ns3UanHeaderRcData_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(ns3::UanHeaderRcData const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcData const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(uint8_t frameNum, ns3::Time propDelay) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNum'), param('ns3::Time', 'propDelay')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcData::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcData::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcData::GetPropDelay() const [member function]
+    cls.add_method('GetPropDelay', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcData::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetFrameNo(uint8_t frameNum) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNum')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetPropDelay(ns3::Time propDelay) [member function]
+    cls.add_method('SetPropDelay', 
+                   'void', 
+                   [param('ns3::Time', 'propDelay')])
+    return
+
+def register_Ns3UanHeaderRcRts_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(ns3::UanHeaderRcRts const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcRts const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length, ns3::Time ts) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('uint8_t', 'noFrames'), param('uint16_t', 'length'), param('ns3::Time', 'ts')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcRts::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcRts::GetLength() const [member function]
+    cls.add_method('GetLength', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetNoFrames() const [member function]
+    cls.add_method('GetNoFrames', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcRts::GetTimeStamp() const [member function]
+    cls.add_method('GetTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcRts::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetFrameNo(uint8_t fno) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'fno')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetLength(uint16_t length) [member function]
+    cls.add_method('SetLength', 
+                   'void', 
+                   [param('uint16_t', 'length')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetNoFrames(uint8_t no) [member function]
+    cls.add_method('SetNoFrames', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetRetryNo(uint8_t no) [member function]
+    cls.add_method('SetRetryNo', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    return
+
+def register_Ns3UanMac_methods(root_module, cls):
+    ## uan-mac.h: ns3::UanMac::UanMac() [constructor]
+    cls.add_constructor([])
+    ## uan-mac.h: ns3::UanMac::UanMac(ns3::UanMac const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMac const &', 'arg0')])
+    ## uan-mac.h: void ns3::UanMac::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: bool ns3::UanMac::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: ns3::Address ns3::UanMac::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: ns3::Address ns3::UanMac::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanMacAloha_methods(root_module, cls):
+    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha(ns3::UanMacAloha const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacAloha const &', 'arg0')])
+    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: bool ns3::UanMacAloha::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-aloha.h: static ns3::TypeId ns3::UanMacAloha::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacCw_methods(root_module, cls):
+    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw(ns3::UanMacCw const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacCw const &', 'arg0')])
+    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-cw.h: void ns3::UanMacCw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: bool ns3::UanMacCw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-cw.h: uint32_t ns3::UanMacCw::GetCw() [member function]
+    cls.add_method('GetCw', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Time ns3::UanMacCw::GetSlotTime() [member function]
+    cls.add_method('GetSlotTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: static ns3::TypeId ns3::UanMacCw::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaEnd() [member function]
+    cls.add_method('NotifyCcaEnd', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaStart() [member function]
+    cls.add_method('NotifyCcaStart', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxStart() [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetCw(uint32_t cw) [member function]
+    cls.add_method('SetCw', 
+                   'void', 
+                   [param('uint32_t', 'cw')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetSlotTime(ns3::Time duration) [member function]
+    cls.add_method('SetSlotTime', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacRc_methods(root_module, cls):
+    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc(ns3::UanMacRc const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacRc const &', 'arg0')])
+    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc.h: void ns3::UanMacRc::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: bool ns3::UanMacRc::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-rc.h: static ns3::TypeId ns3::UanMacRc::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacRcGw_methods(root_module, cls):
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw(ns3::UanMacRcGw const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacRcGw const &', 'arg0')])
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: bool ns3::UanMacRcGw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-rc-gw.h: static ns3::TypeId ns3::UanMacRcGw::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanNoiseModel_methods(root_module, cls):
+    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel() [constructor]
+    cls.add_constructor([])
+    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel(ns3::UanNoiseModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNoiseModel const &', 'arg0')])
+    ## uan-noise-model.h: void ns3::UanNoiseModel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-noise-model.h: void ns3::UanNoiseModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-noise-model.h: double ns3::UanNoiseModel::GetNoiseDbHz(double fKhz) const [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    return
+
+def register_Ns3UanNoiseModelDefault_methods(root_module, cls):
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault(ns3::UanNoiseModelDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNoiseModelDefault const &', 'arg0')])
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-noise-model-default.h: double ns3::UanNoiseModelDefault::GetNoiseDbHz(double fKhz) const [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')], 
+                   is_const=True, is_virtual=True)
+    ## uan-noise-model-default.h: static ns3::TypeId ns3::UanNoiseModelDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhy_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhy::UanPhy() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhy::UanPhy(ns3::UanPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhy const &', 'arg0')])
+    ## uan-phy.h: void ns3::UanPhy::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhy::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::UanTxMode ns3::UanPhy::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: uint32_t ns3::UanPhy::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::Packet> ns3::UanPhy::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhy::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanPhyCalcSinr_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr(ns3::UanPhyCalcSinr const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinr const &', 'arg0')])
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyCalcSinr::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::DbToKp(double db) const [member function]
+    cls.add_method('DbToKp', 
+                   'double', 
+                   [param('double', 'db')], 
+                   is_const=True)
+    ## uan-phy.h: void ns3::UanPhyCalcSinr::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::KpToDb(double kp) const [member function]
+    cls.add_method('KpToDb', 
+                   'double', 
+                   [param('double', 'kp')], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPhyCalcSinrDefault_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault(ns3::UanPhyCalcSinrDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrDefault const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrDefault::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyCalcSinrDual_methods(root_module, cls):
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual(ns3::UanPhyCalcSinrDual const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrDual const &', 'arg0')])
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-dual.h: double ns3::UanPhyCalcSinrDual::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyCalcSinrDual::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk(ns3::UanPhyCalcSinrFhFsk const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrFhFsk const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrFhFsk::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrFhFsk::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyDual_methods(root_module, cls):
+    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual(ns3::UanPhyDual const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyDual const &', 'arg0')])
+    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy1() const [member function]
+    cls.add_method('GetCcaThresholdPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy2() const [member function]
+    cls.add_method('GetCcaThresholdPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyDual::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyDual::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::UanTxMode ns3::UanPhyDual::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy1() const [member function]
+    cls.add_method('GetModesPhy1', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy2() const [member function]
+    cls.add_method('GetModesPhy2', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: uint32_t ns3::UanPhyDual::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy1() const [member function]
+    cls.add_method('GetPerModelPhy1', 
+                   'ns3::Ptr< ns3::UanPhyPer >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy2() const [member function]
+    cls.add_method('GetPerModelPhy2', 
+                   'ns3::Ptr< ns3::UanPhyPer >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy1PacketRx() const [member function]
+    cls.add_method('GetPhy1PacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy2PacketRx() const [member function]
+    cls.add_method('GetPhy2PacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy1() const [member function]
+    cls.add_method('GetRxGainDbPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy2() const [member function]
+    cls.add_method('GetRxGainDbPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy1() const [member function]
+    cls.add_method('GetSinrModelPhy1', 
+                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy2() const [member function]
+    cls.add_method('GetSinrModelPhy2', 
+                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyDual::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy1() const [member function]
+    cls.add_method('GetTxPowerDbPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy2() const [member function]
+    cls.add_method('GetTxPowerDbPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyDual::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Idle() [member function]
+    cls.add_method('IsPhy1Idle', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Rx() [member function]
+    cls.add_method('IsPhy1Rx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Tx() [member function]
+    cls.add_method('IsPhy1Tx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Idle() [member function]
+    cls.add_method('IsPhy2Idle', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Rx() [member function]
+    cls.add_method('IsPhy2Rx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Tx() [member function]
+    cls.add_method('IsPhy2Tx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy1(double thresh) [member function]
+    cls.add_method('SetCcaThresholdPhy1', 
+                   'void', 
+                   [param('double', 'thresh')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy2(double thresh) [member function]
+    cls.add_method('SetCcaThresholdPhy2', 
+                   'void', 
+                   [param('double', 'thresh')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy1(ns3::UanModesList modes) [member function]
+    cls.add_method('SetModesPhy1', 
+                   'void', 
+                   [param('ns3::UanModesList', 'modes')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy2(ns3::UanModesList modes) [member function]
+    cls.add_method('SetModesPhy2', 
+                   'void', 
+                   [param('ns3::UanModesList', 'modes')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy1(ns3::Ptr<ns3::UanPhyPer> per) [member function]
+    cls.add_method('SetPerModelPhy1', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy2(ns3::Ptr<ns3::UanPhyPer> per) [member function]
+    cls.add_method('SetPerModelPhy2', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy1(double gain) [member function]
+    cls.add_method('SetRxGainDbPhy1', 
+                   'void', 
+                   [param('double', 'gain')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy2(double gain) [member function]
+    cls.add_method('SetRxGainDbPhy2', 
+                   'void', 
+                   [param('double', 'gain')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy1(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
+    cls.add_method('SetSinrModelPhy1', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy2(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
+    cls.add_method('SetSinrModelPhy2', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy1(double arg0) [member function]
+    cls.add_method('SetTxPowerDbPhy1', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy2(double arg0) [member function]
+    cls.add_method('SetTxPowerDbPhy2', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanPhyGen_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen(ns3::UanPhyGen const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyGen const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: void ns3::UanPhyGen::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyGen::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::UanModesList ns3::UanPhyGen::GetDefaultModes() [member function]
+    cls.add_method('GetDefaultModes', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyGen::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::UanTxMode ns3::UanPhyGen::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: uint32_t ns3::UanPhyGen::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::Packet> ns3::UanPhyGen::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyGen::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyGen::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanPhyPer_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer(ns3::UanPhyPer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPer const &', 'arg0')])
+    ## uan-phy.h: double ns3::UanPhyPer::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyPer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyPer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    return
+
+def register_Ns3UanPhyPerGenDefault_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault(ns3::UanPhyPerGenDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPerGenDefault const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyPerGenDefault::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerGenDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyPerUmodem_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem(ns3::UanPhyPerUmodem const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPerUmodem const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyPerUmodem::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerUmodem::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPropModel_methods(root_module, cls):
+    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel(ns3::UanPropModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModel const &', 'arg0')])
+    ## uan-prop-model.h: void ns3::UanPropModel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-prop-model.h: void ns3::UanPropModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-prop-model.h: ns3::Time ns3::UanPropModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-prop-model.h: double ns3::UanPropModel::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode txMode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-prop-model.h: ns3::UanPdp ns3::UanPropModel::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanPropModelIdeal_methods(root_module, cls):
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal(ns3::UanPropModelIdeal const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModelIdeal const &', 'arg0')])
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model-ideal.h: ns3::Time ns3::UanPropModelIdeal::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: double ns3::UanPropModelIdeal::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: ns3::UanPdp ns3::UanPropModelIdeal::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: static ns3::TypeId ns3::UanPropModelIdeal::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPropModelThorp_methods(root_module, cls):
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp(ns3::UanPropModelThorp const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModelThorp const &', 'arg0')])
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model-thorp.h: ns3::Time ns3::UanPropModelThorp::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: double ns3::UanPropModelThorp::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: ns3::UanPdp ns3::UanPropModelThorp::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: static ns3::TypeId ns3::UanPropModelThorp::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanTransducer_methods(root_module, cls):
+    ## uan-transducer.h: ns3::UanTransducer::UanTransducer() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer.h: ns3::UanTransducer::UanTransducer(ns3::UanTransducer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTransducer const &', 'arg0')])
+    ## uan-transducer.h: void ns3::UanTransducer::AddPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AddPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducer::GetArrivalList() const [member function]
+    cls.add_method('GetArrivalList', 
+                   'std::list< ns3::UanPacketArrival > const &', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducer::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducer::GetPhyList() const [member function]
+    cls.add_method('GetPhyList', 
+                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: ns3::UanTransducer::State ns3::UanTransducer::GetState() const [member function]
+    cls.add_method('GetState', 
+                   'ns3::UanTransducer::State', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: bool ns3::UanTransducer::IsRx() const [member function]
+    cls.add_method('IsRx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: bool ns3::UanTransducer::IsTx() const [member function]
+    cls.add_method('IsTx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('Transmit', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanTransducerHd_methods(root_module, cls):
+    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd(ns3::UanTransducerHd const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTransducerHd const &', 'arg0')])
+    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::AddPhy(ns3::Ptr<ns3::UanPhy> arg0) [member function]
+    cls.add_method('AddPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'arg0')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducerHd::GetArrivalList() const [member function]
+    cls.add_method('GetArrivalList', 
+                   'std::list< ns3::UanPacketArrival > const &', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducerHd::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducerHd::GetPhyList() const [member function]
+    cls.add_method('GetPhyList', 
+                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: ns3::UanTransducer::State ns3::UanTransducerHd::GetState() const [member function]
+    cls.add_method('GetState', 
+                   'ns3::UanTransducer::State', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: static ns3::TypeId ns3::UanTransducerHd::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsRx() const [member function]
+    cls.add_method('IsRx', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsTx() const [member function]
+    cls.add_method('IsTx', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('Transmit', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanChannel_methods(root_module, cls):
+    ## uan-channel.h: ns3::UanChannel::UanChannel(ns3::UanChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanChannel const &', 'arg0')])
+    ## uan-channel.h: ns3::UanChannel::UanChannel() [constructor]
+    cls.add_constructor([])
+    ## uan-channel.h: void ns3::UanChannel::AddDevice(ns3::Ptr<ns3::UanNetDevice> dev, ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('AddDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'dev'), param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
+    ## uan-channel.h: void ns3::UanChannel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## uan-channel.h: ns3::Ptr<ns3::NetDevice> ns3::UanChannel::GetDevice(uint32_t i) const [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## uan-channel.h: uint32_t ns3::UanChannel::GetNDevices() const [member function]
+    cls.add_method('GetNDevices', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-channel.h: double ns3::UanChannel::GetNoiseDbHz(double fKhz) [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')])
+    ## uan-channel.h: static ns3::TypeId ns3::UanChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-channel.h: void ns3::UanChannel::SetNoiseModel(ns3::Ptr<ns3::UanNoiseModel> noise) [member function]
+    cls.add_method('SetNoiseModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNoiseModel >', 'noise')])
+    ## uan-channel.h: void ns3::UanChannel::SetPropagationModel(ns3::Ptr<ns3::UanPropModel> prop) [member function]
+    cls.add_method('SetPropagationModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPropModel >', 'prop')])
+    ## uan-channel.h: void ns3::UanChannel::TxPacket(ns3::Ptr<ns3::UanTransducer> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txmode) [member function]
+    cls.add_method('TxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txmode')])
+    ## uan-channel.h: void ns3::UanChannel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanModesListChecker_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker(ns3::UanModesListChecker const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesListChecker const &', 'arg0')])
+    return
+
+def register_Ns3UanModesListValue_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesListValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesListValue const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesList const & value) [constructor]
+    cls.add_constructor([param('ns3::UanModesList const &', 'value')])
+    ## uan-tx-mode.h: ns3::Ptr<ns3::AttributeValue> ns3::UanModesListValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::AttributeValue >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-tx-mode.h: bool ns3::UanModesListValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+    cls.add_method('DeserializeFromString', 
+                   'bool', 
+                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_virtual=True)
+    ## uan-tx-mode.h: ns3::UanModesList ns3::UanModesListValue::Get() const [member function]
+    cls.add_method('Get', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: std::string ns3::UanModesListValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+    cls.add_method('SerializeToString', 
+                   'std::string', 
+                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_const=True, is_virtual=True)
+    ## uan-tx-mode.h: void ns3::UanModesListValue::Set(ns3::UanModesList const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('ns3::UanModesList const &', 'value')])
+    return
+
+def register_Ns3UanNetDevice_methods(root_module, cls):
+    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice(ns3::UanNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNetDevice const &', 'arg0')])
+    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice() [constructor]
+    cls.add_constructor([])
+    ## uan-net-device.h: void ns3::UanNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::Channel> ns3::UanNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: uint32_t ns3::UanNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanMac> ns3::UanNetDevice::GetMac() const [member function]
+    cls.add_method('GetMac', 
+                   'ns3::Ptr< ns3::UanMac >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: uint16_t ns3::UanNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::Node> ns3::UanNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanPhy> ns3::UanNetDevice::GetPhy() const [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::UanPhy >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanTransducer> ns3::UanNetDevice::GetTransducer() const [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: static ns3::TypeId ns3::UanNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')])
+    ## uan-net-device.h: void ns3::UanNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')])
+    ## uan-net-device.h: bool ns3::UanNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')])
+    ## uan-net-device.h: void ns3::UanNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
+    ## uan-net-device.h: bool ns3::UanNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> pkt, ns3::UanAddress const & src) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::UanAddress const &', 'src')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3AcousticModemEnergyModel_methods(root_module, cls):
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel(ns3::AcousticModemEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AcousticModemEnergyModel const &', 'arg0')])
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: int ns3::AcousticModemEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetIdlePowerW() const [member function]
+    cls.add_method('GetIdlePowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: ns3::Ptr<ns3::Node> ns3::AcousticModemEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetRxPowerW() const [member function]
+    cls.add_method('GetRxPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetSleepPowerW() const [member function]
+    cls.add_method('GetSleepPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTxPowerW() const [member function]
+    cls.add_method('GetTxPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: static ns3::TypeId ns3::AcousticModemEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
+    cls.add_method('SetIdlePowerW', 
+                   'void', 
+                   [param('double', 'idlePowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetRxPowerW(double rxPowerW) [member function]
+    cls.add_method('SetRxPowerW', 
+                   'void', 
+                   [param('double', 'rxPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
+    cls.add_method('SetSleepPowerW', 
+                   'void', 
+                   [param('double', 'sleepPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetTxPowerW(double txPowerW) [member function]
+    cls.add_method('SetTxPowerW', 
+                   'void', 
+                   [param('double', 'txPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
     module = root_module
+    ## uan-tx-mode.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeUanModesListChecker() [free function]
+    module.add_function('MakeUanModesListChecker', 
+                        'ns3::Ptr< ns3::AttributeChecker const >', 
+                        [])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_virtual_net_device.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_virtual_net_device.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## virtual-net-device.h: ns3::VirtualNetDevice [class]
+    module.add_class('VirtualNetDevice', parent=root_module['ns3::NetDevice'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +97,164 @@
     
 
 def register_methods(root_module):
+    register_Ns3VirtualNetDevice_methods(root_module, root_module['ns3::VirtualNetDevice'])
+    return
+
+def register_Ns3VirtualNetDevice_methods(root_module, cls):
+    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice(ns3::VirtualNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::VirtualNetDevice const &', 'arg0')])
+    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice() [constructor]
+    cls.add_constructor([])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Ptr<ns3::Channel> ns3::VirtualNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: uint32_t ns3::VirtualNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: uint16_t ns3::VirtualNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Ptr<ns3::Node> ns3::VirtualNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: static ns3::TypeId ns3::VirtualNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Receive(ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('Receive', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIsPointToPoint(bool isPointToPoint) [member function]
+    cls.add_method('SetIsPointToPoint', 
+                   'void', 
+                   [param('bool', 'isPointToPoint')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNeedsArp(bool needsArp) [member function]
+    cls.add_method('SetNeedsArp', 
+                   'void', 
+                   [param('bool', 'needsArp')])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSendCallback(ns3::Callback<bool, ns3::Ptr<ns3::Packet>, ns3::Address const&, ns3::Address const&, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> transmitCb) [member function]
+    cls.add_method('SetSendCallback', 
+                   'void', 
+                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::Address const &, ns3::Address const &, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'transmitCb')])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSupportsSendFrom(bool supportsSendFrom) [member function]
+    cls.add_method('SetSupportsSendFrom', 
+                   'void', 
+                   [param('bool', 'supportsSendFrom')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_visualizer.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_visualizer.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,35 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## pyviz.h: ns3::PyViz [class]
+    module.add_class('PyViz')
+    ## pyviz.h: ns3::PyViz::PacketCaptureMode [enumeration]
+    module.add_enum('PacketCaptureMode', ['PACKET_CAPTURE_DISABLED', 'PACKET_CAPTURE_FILTER_HEADERS_OR', 'PACKET_CAPTURE_FILTER_HEADERS_AND'], outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample [struct]
+    module.add_class('LastPacketsSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics [struct]
+    module.add_class('NetDeviceStatistics', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::NodeStatistics [struct]
+    module.add_class('NodeStatistics', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions [struct]
+    module.add_class('PacketCaptureOptions', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketDropSample [struct]
+    module.add_class('PacketDropSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketSample [struct]
+    module.add_class('PacketSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::RxPacketSample [struct]
+    module.add_class('RxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::TransmissionSample [struct]
+    module.add_class('TransmissionSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::TxPacketSample [struct]
+    module.add_class('TxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
+    module.add_container('std::vector< ns3::PyViz::RxPacketSample >', 'ns3::PyViz::RxPacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::TxPacketSample >', 'ns3::PyViz::TxPacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::PacketSample >', 'ns3::PyViz::PacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::TransmissionSample >', 'ns3::PyViz::TransmissionSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::PacketDropSample >', 'ns3::PyViz::PacketDropSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::NetDeviceStatistics >', 'ns3::PyViz::NetDeviceStatistics', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::NodeStatistics >', 'ns3::PyViz::NodeStatistics', container_type='vector')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +124,195 @@
     
 
 def register_methods(root_module):
+    register_Ns3PyViz_methods(root_module, root_module['ns3::PyViz'])
+    register_Ns3PyVizLastPacketsSample_methods(root_module, root_module['ns3::PyViz::LastPacketsSample'])
+    register_Ns3PyVizNetDeviceStatistics_methods(root_module, root_module['ns3::PyViz::NetDeviceStatistics'])
+    register_Ns3PyVizNodeStatistics_methods(root_module, root_module['ns3::PyViz::NodeStatistics'])
+    register_Ns3PyVizPacketCaptureOptions_methods(root_module, root_module['ns3::PyViz::PacketCaptureOptions'])
+    register_Ns3PyVizPacketDropSample_methods(root_module, root_module['ns3::PyViz::PacketDropSample'])
+    register_Ns3PyVizPacketSample_methods(root_module, root_module['ns3::PyViz::PacketSample'])
+    register_Ns3PyVizRxPacketSample_methods(root_module, root_module['ns3::PyViz::RxPacketSample'])
+    register_Ns3PyVizTransmissionSample_methods(root_module, root_module['ns3::PyViz::TransmissionSample'])
+    register_Ns3PyVizTxPacketSample_methods(root_module, root_module['ns3::PyViz::TxPacketSample'])
+    return
+
+def register_Ns3PyViz_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PyViz(ns3::PyViz const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PyViz() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample ns3::PyViz::GetLastPackets(uint32_t nodeId) const [member function]
+    cls.add_method('GetLastPackets', 
+                   'ns3::PyViz::LastPacketsSample', 
+                   [param('uint32_t', 'nodeId')], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::NodeStatistics,std::allocator<ns3::PyViz::NodeStatistics> > ns3::PyViz::GetNodesStatistics() const [member function]
+    cls.add_method('GetNodesStatistics', 
+                   'std::vector< ns3::PyViz::NodeStatistics >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::PacketDropSample,std::allocator<ns3::PyViz::PacketDropSample> > ns3::PyViz::GetPacketDropSamples() const [member function]
+    cls.add_method('GetPacketDropSamples', 
+                   'std::vector< ns3::PyViz::PacketDropSample >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<std::string, std::allocator<std::string> > ns3::PyViz::GetPauseMessages() const [member function]
+    cls.add_method('GetPauseMessages', 
+                   'std::vector< std::string >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::TransmissionSample,std::allocator<ns3::PyViz::TransmissionSample> > ns3::PyViz::GetTransmissionSamples() const [member function]
+    cls.add_method('GetTransmissionSamples', 
+                   'std::vector< ns3::PyViz::TransmissionSample >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: static void ns3::PyViz::LineClipping(double boundsX1, double boundsY1, double boundsX2, double boundsY2, double & lineX1, double & lineY1, double & lineX2, double & lineY2) [member function]
+    cls.add_method('LineClipping', 
+                   'void', 
+                   [param('double', 'boundsX1'), param('double', 'boundsY1'), param('double', 'boundsX2'), param('double', 'boundsY2'), param('double &', 'lineX1', direction=3), param('double &', 'lineY1', direction=3), param('double &', 'lineX2', direction=3), param('double &', 'lineY2', direction=3)], 
+                   is_static=True)
+    ## pyviz.h: static void ns3::PyViz::Pause(std::string const & message) [member function]
+    cls.add_method('Pause', 
+                   'void', 
+                   [param('std::string const &', 'message')], 
+                   is_static=True)
+    ## pyviz.h: void ns3::PyViz::RegisterCsmaLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterCsmaLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::RegisterDropTracePath(std::string const & tracePath) [member function]
+    cls.add_method('RegisterDropTracePath', 
+                   'void', 
+                   [param('std::string const &', 'tracePath')])
+    ## pyviz.h: void ns3::PyViz::RegisterPointToPointLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterPointToPointLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::RegisterWifiLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterWifiLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::SetNodesOfInterest(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > nodes) [member function]
+    cls.add_method('SetNodesOfInterest', 
+                   'void', 
+                   [param('std::set< unsigned int >', 'nodes')])
+    ## pyviz.h: void ns3::PyViz::SetPacketCaptureOptions(uint32_t nodeId, ns3::PyViz::PacketCaptureOptions options) [member function]
+    cls.add_method('SetPacketCaptureOptions', 
+                   'void', 
+                   [param('uint32_t', 'nodeId'), param('ns3::PyViz::PacketCaptureOptions', 'options')])
+    ## pyviz.h: void ns3::PyViz::SimulatorRunUntil(ns3::Time time) [member function]
+    cls.add_method('SimulatorRunUntil', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    return
+
+def register_Ns3PyVizLastPacketsSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample(ns3::PyViz::LastPacketsSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::LastPacketsSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastDroppedPackets [variable]
+    cls.add_instance_attribute('lastDroppedPackets', 'std::vector< ns3::PyViz::PacketSample >', is_const=False)
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastReceivedPackets [variable]
+    cls.add_instance_attribute('lastReceivedPackets', 'std::vector< ns3::PyViz::RxPacketSample >', is_const=False)
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastTransmittedPackets [variable]
+    cls.add_instance_attribute('lastTransmittedPackets', 'std::vector< ns3::PyViz::TxPacketSample >', is_const=False)
+    return
+
+def register_Ns3PyVizNetDeviceStatistics_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics(ns3::PyViz::NetDeviceStatistics const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::NetDeviceStatistics const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedBytes [variable]
+    cls.add_instance_attribute('receivedBytes', 'uint64_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedPackets [variable]
+    cls.add_instance_attribute('receivedPackets', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedBytes [variable]
+    cls.add_instance_attribute('transmittedBytes', 'uint64_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedPackets [variable]
+    cls.add_instance_attribute('transmittedPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3PyVizNodeStatistics_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics(ns3::PyViz::NodeStatistics const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::NodeStatistics const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::NodeStatistics::nodeId [variable]
+    cls.add_instance_attribute('nodeId', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NodeStatistics::statistics [variable]
+    cls.add_instance_attribute('statistics', 'std::vector< ns3::PyViz::NetDeviceStatistics >', is_const=False)
+    return
+
+def register_Ns3PyVizPacketCaptureOptions_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions(ns3::PyViz::PacketCaptureOptions const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketCaptureOptions const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::headers [variable]
+    cls.add_instance_attribute('headers', 'std::set< ns3::TypeId >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::mode [variable]
+    cls.add_instance_attribute('mode', 'ns3::PyViz::PacketCaptureMode', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::numLastPackets [variable]
+    cls.add_instance_attribute('numLastPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3PyVizPacketDropSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample(ns3::PyViz::PacketDropSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketDropSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketDropSample::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketDropSample::transmitter [variable]
+    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
+    return
+
+def register_Ns3PyVizPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample(ns3::PyViz::PacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketSample::device [variable]
+    cls.add_instance_attribute('device', 'ns3::Ptr< ns3::NetDevice >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketSample::packet [variable]
+    cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketSample::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3PyVizRxPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample(ns3::PyViz::RxPacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::RxPacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::RxPacketSample::from [variable]
+    cls.add_instance_attribute('from', 'ns3::Mac48Address', is_const=False)
+    return
+
+def register_Ns3PyVizTransmissionSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample(ns3::PyViz::TransmissionSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::TransmissionSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::TransmissionSample::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::channel [variable]
+    cls.add_instance_attribute('channel', 'ns3::Ptr< ns3::Channel >', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::receiver [variable]
+    cls.add_instance_attribute('receiver', 'ns3::Ptr< ns3::Node >', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::transmitter [variable]
+    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
+    return
+
+def register_Ns3PyVizTxPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample(ns3::PyViz::TxPacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::TxPacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::TxPacketSample::to [variable]
+    cls.add_instance_attribute('to', 'ns3::Mac48Address', is_const=False)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-ILP32/ns3_module_wifi.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3_module_wifi.py	Tue Feb 08 13:08:45 2011 -0500
@@ -204,15 +204,15 @@
     ## dca-txop.h: ns3::DcaTxop [class]
     module.add_class('DcaTxop', parent=root_module['ns3::Dcf'])
     module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type='vector')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
     typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
     typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
     typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
--- a/bindings/python/apidefs/gcc-ILP32/ns3modulegen_generated.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-ILP32/ns3modulegen_generated.py	Tue Feb 08 13:08:45 2011 -0500
@@ -13,7 +13,6 @@
 
 import sys
 import ns3_module_core
-import ns3_module_lte
 import ns3_module_simulator
 import ns3_module_test
 import ns3_module_visualizer
@@ -26,15 +25,11 @@
 import ns3_module_bulk_send
 import ns3_module_csma
 import ns3_module_emu
-import ns3_module_energy
-import ns3_module_global_routing
 import ns3_module_internet_stack
-import ns3_module_list_routing
 import ns3_module_onoff
 import ns3_module_packet_sink
 import ns3_module_point_to_point
-import ns3_module_spectrum
-import ns3_module_static_routing
+import ns3_module_propagation
 import ns3_module_stats
 import ns3_module_tap_bridge
 import ns3_module_topology_read
@@ -42,20 +37,26 @@
 import ns3_module_virtual_net_device
 import ns3_module_wifi
 import ns3_module_wimax
-import ns3_module_uan
 import ns3_module_aodv
 import ns3_module_flow_monitor
 import ns3_module_nix_vector_routing
-import ns3_module_olsr
 import ns3_module_ping6
 import ns3_module_radvd
 import ns3_module_udp_client_server
 import ns3_module_udp_echo
-import ns3_module_dsdv
+import ns3_module_spectrum
+import ns3_module_energy
 import ns3_module_mesh
 import ns3_module_helper
+import ns3_module_lte
+import ns3_module_uan
 import ns3_module_dot11s
 import ns3_module_flame
+import ns3_module_dsdv
+import ns3_module_global_routing
+import ns3_module_list_routing
+import ns3_module_olsr
+import ns3_module_static_routing
 
 def module_init():
     root_module = Module('ns3', cpp_namespace='::ns3')
@@ -75,17 +76,6 @@
         ns3_module_core__local.register_types(module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_types(module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_types(module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_types(module)
     
@@ -218,28 +208,6 @@
         ns3_module_emu__local.register_types(module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_types(module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_types(module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_types(module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_types(module)
     
@@ -251,17 +219,6 @@
         ns3_module_internet_stack__local.register_types(module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_types(module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_types(module)
     
@@ -295,28 +252,17 @@
         ns3_module_point_to_point__local.register_types(module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_types(module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_types(module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_types(module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_types(module)
+        ns3_module_propagation__local.register_types(module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_types(module)
     
@@ -394,17 +340,6 @@
         ns3_module_wimax__local.register_types(module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_types(module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_types(module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_types(module)
     
@@ -438,17 +373,6 @@
         ns3_module_nix_vector_routing__local.register_types(module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_types(module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_types(module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_types(module)
     
@@ -493,17 +417,28 @@
         ns3_module_udp_echo__local.register_types(module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_types(module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_types(module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_types(module)
+        ns3_module_spectrum__local.register_types(module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_types(module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_types(module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_types(module)
     
@@ -526,6 +461,28 @@
         ns3_module_helper__local.register_types(module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_types(module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_types(module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_types(module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_types(module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_types(module)
     
@@ -548,372 +505,80 @@
         ns3_module_flame__local.register_types(module)
     
     root_module.end_section('ns3_module_flame')
-    ## bridge-helper.h: ns3::BridgeHelper [class]
-    module.add_class('BridgeHelper')
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
-    module.add_class('DeviceEnergyModelContainer')
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
-    module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
-    ## energy-model-helper.h: ns3::EnergySourceHelper [class]
-    module.add_class('EnergySourceHelper', allow_subclassing=True)
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper [class]
-    module.add_class('FlowMonitorHelper')
-    ## global-route-manager.h: ns3::GlobalRouteManager [class]
-    module.add_class('GlobalRouteManager')
-    ## global-router-interface.h: ns3::GlobalRoutingLSA [class]
-    module.add_class('GlobalRoutingLSA')
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType [enumeration]
-    module.add_enum('LSType', ['Unknown', 'RouterLSA', 'NetworkLSA', 'SummaryLSA', 'SummaryLSA_ASBR', 'ASExternalLSAs'], outer_class=root_module['ns3::GlobalRoutingLSA'])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus [enumeration]
-    module.add_enum('SPFStatus', ['LSA_SPF_NOT_EXPLORED', 'LSA_SPF_CANDIDATE', 'LSA_SPF_IN_SPFTREE'], outer_class=root_module['ns3::GlobalRoutingLSA'])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord [class]
-    module.add_class('GlobalRoutingLinkRecord')
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType [enumeration]
-    module.add_enum('LinkType', ['Unknown', 'PointToPoint', 'TransitNetwork', 'StubNetwork', 'VirtualLink'], outer_class=root_module['ns3::GlobalRoutingLinkRecord'])
-    ## histogram.h: ns3::Histogram [class]
-    module.add_class('Histogram')
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry [class]
-    module.add_class('Ipv4MulticastRoutingTableEntry')
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry [class]
-    module.add_class('Ipv4RoutingTableEntry')
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper [class]
-    module.add_class('Ipv4StaticRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry [class]
-    module.add_class('Ipv6MulticastRoutingTableEntry')
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry [class]
-    module.add_class('Ipv6RoutingTableEntry')
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper [class]
-    module.add_class('Ipv6StaticRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
-    ## lte-helper.h: ns3::LteHelper [class]
-    module.add_class('LteHelper')
-    ## lte-helper.h: ns3::LteHelper::NetDeviceType [enumeration]
-    module.add_enum('NetDeviceType', ['DEVICE_TYPE_USER_EQUIPMENT', 'DEVICE_TYPE_ENODEB'], outer_class=root_module['ns3::LteHelper'])
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper [class]
-    module.add_class('LteSpectrumValueHelper')
-    ## olsr-helper.h: ns3::OlsrHelper [class]
-    module.add_class('OlsrHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## olsr-state.h: ns3::OlsrState [class]
-    module.add_class('OlsrState')
-    ## pyviz.h: ns3::PyViz [class]
-    module.add_class('PyViz')
-    ## pyviz.h: ns3::PyViz::PacketCaptureMode [enumeration]
-    module.add_enum('PacketCaptureMode', ['PACKET_CAPTURE_DISABLED', 'PACKET_CAPTURE_FILTER_HEADERS_OR', 'PACKET_CAPTURE_FILTER_HEADERS_AND'], outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample [struct]
-    module.add_class('LastPacketsSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics [struct]
-    module.add_class('NetDeviceStatistics', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::NodeStatistics [struct]
-    module.add_class('NodeStatistics', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions [struct]
-    module.add_class('PacketCaptureOptions', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketDropSample [struct]
-    module.add_class('PacketDropSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketSample [struct]
-    module.add_class('PacketSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::RxPacketSample [struct]
-    module.add_class('RxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::TransmissionSample [struct]
-    module.add_class('TransmissionSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::TxPacketSample [struct]
-    module.add_class('TxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
-    ## uan-mac-rc.h: ns3::Reservation [class]
-    module.add_class('Reservation')
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper [class]
-    module.add_class('RvBatteryModelHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## uan-prop-model.h: ns3::Tap [class]
-    module.add_class('Tap')
-    ## uan-address.h: ns3::UanAddress [class]
-    module.add_class('UanAddress')
-    ## uan-address.h: ns3::UanAddress [class]
-    root_module['ns3::UanAddress'].implicitly_converts_to(root_module['ns3::Address'])
-    ## uan-helper.h: ns3::UanHelper [class]
-    module.add_class('UanHelper')
-    ## uan-tx-mode.h: ns3::UanModesList [class]
-    module.add_class('UanModesList')
-    ## uan-transducer.h: ns3::UanPacketArrival [class]
-    module.add_class('UanPacketArrival')
-    ## uan-prop-model.h: ns3::UanPdp [class]
-    module.add_class('UanPdp')
-    ## uan-phy.h: ns3::UanPhyListener [class]
-    module.add_class('UanPhyListener', allow_subclassing=True)
-    ## uan-tx-mode.h: ns3::UanTxMode [class]
-    module.add_class('UanTxMode')
-    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType [enumeration]
-    module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
-    ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
-    module.add_class('UanTxModeFactory')
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
-    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener [class]
-    module.add_class('WifiRadioEnergyModelPhyListener', parent=root_module['ns3::WifiPhyListener'])
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper [class]
-    module.add_class('AcousticModemEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
-    module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## dsdv-helper.h: ns3::DsdvHelper [class]
-    module.add_class('DsdvHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper [class]
-    module.add_class('Ipv4GlobalRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper [class]
-    module.add_class('Ipv4ListRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper [class]
-    module.add_class('Ipv6ListRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
-    ## lte-mac-header.h: ns3::LteMacHeader [class]
-    module.add_class('LteMacHeader', parent=root_module['ns3::Header'])
-    ## packet-scheduler.h: ns3::PacketScheduler [class]
-    module.add_class('PacketScheduler', parent=root_module['ns3::Object'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance [class]
-    module.add_class('RadioBearerInstance', parent=root_module['ns3::Object'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection [enumeration]
-    module.add_enum('BearerDirection', ['DIRECTION_TYPE_UL', 'DIRECTION_TYPE_DL'], outer_class=root_module['ns3::RadioBearerInstance'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType [enumeration]
-    module.add_enum('BearerType', ['BEARER_TYPE_SRB1', 'BEARER_TYPE_SRB2', 'BEARER_TYPE_DRB'], outer_class=root_module['ns3::RadioBearerInstance'])
-    ## rlc-entity.h: ns3::RlcEntity [class]
-    module.add_class('RlcEntity', parent=root_module['ns3::Object'])
-    ## rrc-entity.h: ns3::RrcEntity [class]
-    module.add_class('RrcEntity', parent=root_module['ns3::Object'])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler [class]
-    module.add_class('SimplePacketScheduler', parent=root_module['ns3::PacketScheduler'])
-    ## uan-header-common.h: ns3::UanHeaderCommon [class]
-    module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
-    module.add_class('UanHeaderRcAck', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts [class]
-    module.add_class('UanHeaderRcCts', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal [class]
-    module.add_class('UanHeaderRcCtsGlobal', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcData [class]
-    module.add_class('UanHeaderRcData', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts [class]
-    module.add_class('UanHeaderRcRts', parent=root_module['ns3::Header'])
-    ## uan-mac.h: ns3::UanMac [class]
-    module.add_class('UanMac', parent=root_module['ns3::Object'])
-    ## uan-mac-aloha.h: ns3::UanMacAloha [class]
-    module.add_class('UanMacAloha', parent=root_module['ns3::UanMac'])
-    ## uan-mac-cw.h: ns3::UanMacCw [class]
-    module.add_class('UanMacCw', parent=[root_module['ns3::UanMac'], root_module['ns3::UanPhyListener']])
-    ## uan-mac-rc.h: ns3::UanMacRc [class]
-    module.add_class('UanMacRc', parent=root_module['ns3::UanMac'])
-    ## uan-mac-rc.h: ns3::UanMacRc [enumeration]
-    module.add_enum('', ['TYPE_DATA', 'TYPE_GWPING', 'TYPE_RTS', 'TYPE_CTS', 'TYPE_ACK'], outer_class=root_module['ns3::UanMacRc'])
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw [class]
-    module.add_class('UanMacRcGw', parent=root_module['ns3::UanMac'])
-    ## uan-noise-model.h: ns3::UanNoiseModel [class]
-    module.add_class('UanNoiseModel', parent=root_module['ns3::Object'])
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault [class]
-    module.add_class('UanNoiseModelDefault', parent=root_module['ns3::UanNoiseModel'])
-    ## uan-phy.h: ns3::UanPhy [class]
-    module.add_class('UanPhy', parent=root_module['ns3::Object'])
-    ## uan-phy.h: ns3::UanPhy::State [enumeration]
-    module.add_enum('State', ['IDLE', 'CCABUSY', 'RX', 'TX', 'SLEEP'], outer_class=root_module['ns3::UanPhy'])
-    ## uan-phy.h: ns3::UanPhyCalcSinr [class]
-    module.add_class('UanPhyCalcSinr', parent=root_module['ns3::Object'])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault [class]
-    module.add_class('UanPhyCalcSinrDefault', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual [class]
-    module.add_class('UanPhyCalcSinrDual', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk [class]
-    module.add_class('UanPhyCalcSinrFhFsk', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-dual.h: ns3::UanPhyDual [class]
-    module.add_class('UanPhyDual', parent=root_module['ns3::UanPhy'])
-    ## uan-phy-gen.h: ns3::UanPhyGen [class]
-    module.add_class('UanPhyGen', parent=root_module['ns3::UanPhy'])
-    ## uan-phy.h: ns3::UanPhyPer [class]
-    module.add_class('UanPhyPer', parent=root_module['ns3::Object'])
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault [class]
-    module.add_class('UanPhyPerGenDefault', parent=root_module['ns3::UanPhyPer'])
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem [class]
-    module.add_class('UanPhyPerUmodem', parent=root_module['ns3::UanPhyPer'])
-    ## uan-prop-model.h: ns3::UanPropModel [class]
-    module.add_class('UanPropModel', parent=root_module['ns3::Object'])
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal [class]
-    module.add_class('UanPropModelIdeal', parent=root_module['ns3::UanPropModel'])
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp [class]
-    module.add_class('UanPropModelThorp', parent=root_module['ns3::UanPropModel'])
-    ## uan-transducer.h: ns3::UanTransducer [class]
-    module.add_class('UanTransducer', parent=root_module['ns3::Object'])
-    ## uan-transducer.h: ns3::UanTransducer::State [enumeration]
-    module.add_enum('State', ['TX', 'RX'], outer_class=root_module['ns3::UanTransducer'])
-    ## uan-transducer-hd.h: ns3::UanTransducerHd [class]
-    module.add_class('UanTransducerHd', parent=root_module['ns3::UanTransducer'])
-    ## ue-manager.h: ns3::UeManager [class]
-    module.add_class('UeManager', parent=root_module['ns3::Object'])
-    ## ue-record.h: ns3::UeRecord [class]
-    module.add_class('UeRecord', parent=root_module['ns3::Object'])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback [struct]
-    module.add_class('CqiFeedback', outer_class=root_module['ns3::UeRecord'])
-    ## amc-module.h: ns3::AmcModule [class]
-    module.add_class('AmcModule', parent=root_module['ns3::Object'])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters [class]
-    module.add_class('BearerQosParameters', parent=root_module['ns3::Object'])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType [enumeration]
-    module.add_enum('BearerQosType', ['BEARER_TYPE_GBR', 'BEARER_TYPE_NGBR'], outer_class=root_module['ns3::BearerQosParameters'])
-    ## channel-realization.h: ns3::ChannelRealization [class]
-    module.add_class('ChannelRealization', parent=root_module['ns3::Object'])
-    ## device-energy-model.h: ns3::DeviceEnergyModel [class]
-    module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel [class]
-    module.add_class('DiscreteTimeLossModel', parent=root_module['ns3::Object'])
-    ## energy-source.h: ns3::EnergySource [class]
-    module.add_class('EnergySource', parent=root_module['ns3::Object'])
-    ## energy-source-container.h: ns3::EnergySourceContainer [class]
-    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
-    ## flow-classifier.h: ns3::FlowClassifier [class]
-    module.add_class('FlowClassifier', parent=root_module['ns3::SimpleRefCount< ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> >'])
-    ## flow-monitor.h: ns3::FlowMonitor [class]
-    module.add_class('FlowMonitor', parent=root_module['ns3::Object'])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats [struct]
-    module.add_class('FlowStats', outer_class=root_module['ns3::FlowMonitor'])
-    ## flow-probe.h: ns3::FlowProbe [class]
-    module.add_class('FlowProbe', parent=root_module['ns3::SimpleRefCount< ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> >'])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats [struct]
-    module.add_class('FlowStats', outer_class=root_module['ns3::FlowProbe'])
-    ## global-router-interface.h: ns3::GlobalRouter [class]
-    module.add_class('GlobalRouter', is_singleton=True, parent=root_module['ns3::Object'])
-    ## ideal-control-messages.h: ns3::IdealControlMessage [class]
-    module.add_class('IdealControlMessage', parent=root_module['ns3::SimpleRefCount< ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> >'])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType [enumeration]
-    module.add_enum('MessageType', ['CQI_FEEDBACKS', 'ALLOCATION_MAP'], outer_class=root_module['ns3::IdealControlMessage'])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier [class]
-    module.add_class('Ipv4FlowClassifier', parent=root_module['ns3::FlowClassifier'])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple [struct]
-    module.add_class('FiveTuple', outer_class=root_module['ns3::Ipv4FlowClassifier'])
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe [class]
-    module.add_class('Ipv4FlowProbe', parent=root_module['ns3::FlowProbe'])
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::DropReason [enumeration]
-    module.add_enum('DropReason', ['DROP_NO_ROUTE', 'DROP_TTL_EXPIRE', 'DROP_BAD_CHECKSUM', 'DROP_QUEUE', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_INVALID_REASON'], outer_class=root_module['ns3::Ipv4FlowProbe'])
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
-    module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting [class]
-    module.add_class('Ipv6StaticRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel [class]
-    module.add_class('JakesFadingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource [class]
-    module.add_class('LiIonEnergySource', parent=root_module['ns3::EnergySource'])
-    ## lte-mac-queue.h: ns3::LteMacQueue [class]
-    module.add_class('LteMacQueue', parent=root_module['ns3::Object'])
-    ## lte-phy.h: ns3::LtePhy [class]
-    module.add_class('LtePhy', parent=root_module['ns3::Object'])
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel [class]
-    module.add_class('LtePropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy [class]
-    module.add_class('LteSpectrumPhy', parent=root_module['ns3::SpectrumPhy'])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::State [enumeration]
-    module.add_enum('State', ['IDLE', 'TX', 'RX'], outer_class=root_module['ns3::LteSpectrumPhy'])
-    ## mac-entity.h: ns3::MacEntity [class]
-    module.add_class('MacEntity', parent=root_module['ns3::Object'])
-    ## path-loss-model.h: ns3::PathLossModel [class]
-    module.add_class('PathLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage [class]
-    module.add_class('PdcchMapIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::Direction [enumeration]
-    module.add_enum('Direction', ['DOWNLINK', 'UPLINK'], outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord [struct]
-    module.add_class('IdealPdcchRecord', outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
-    ## penetration-loss-model.h: ns3::PenetrationLossModel [class]
-    module.add_class('PenetrationLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## rv-battery-model.h: ns3::RvBatteryModel [class]
-    module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource'])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel [class]
-    module.add_class('ShadowingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel [class]
-    module.add_class('SimpleDeviceEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## uan-channel.h: ns3::UanChannel [class]
-    module.add_class('UanChannel', parent=root_module['ns3::Channel'])
-    ## uan-tx-mode.h: ns3::UanModesListChecker [class]
-    module.add_class('UanModesListChecker', parent=root_module['ns3::AttributeChecker'])
-    ## uan-tx-mode.h: ns3::UanModesListValue [class]
-    module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
-    ## uan-net-device.h: ns3::UanNetDevice [class]
-    module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ue-phy.h: ns3::UeLtePhy [class]
-    module.add_class('UeLtePhy', parent=root_module['ns3::LtePhy'])
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy [class]
-    module.add_class('UeLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
-    ## ue-mac-entity.h: ns3::UeMacEntity [class]
-    module.add_class('UeMacEntity', parent=root_module['ns3::MacEntity'])
-    ## virtual-net-device.h: ns3::VirtualNetDevice [class]
-    module.add_class('VirtualNetDevice', parent=root_module['ns3::NetDevice'])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
-    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel [class]
-    module.add_class('AcousticModemEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## basic-energy-source.h: ns3::BasicEnergySource [class]
-    module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
-    ## bridge-channel.h: ns3::BridgeChannel [class]
-    module.add_class('BridgeChannel', parent=root_module['ns3::Channel'])
-    ## bridge-net-device.h: ns3::BridgeNetDevice [class]
-    module.add_class('BridgeNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage [class]
-    module.add_class('CqiIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback [struct]
-    module.add_class('CqiFeedback', outer_class=root_module['ns3::CqiIdealControlMessage'])
-    ## enb-phy.h: ns3::EnbLtePhy [class]
-    module.add_class('EnbLtePhy', parent=root_module['ns3::LtePhy'])
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy [class]
-    module.add_class('EnbLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
-    ## enb-mac-entity.h: ns3::EnbMacEntity [class]
-    module.add_class('EnbMacEntity', parent=root_module['ns3::MacEntity'])
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting [class]
-    module.add_class('Ipv4GlobalRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting [class]
-    module.add_class('Ipv4ListRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting [class]
-    module.add_class('Ipv6ListRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
-    ## lte-net-device.h: ns3::LteNetDevice [class]
-    module.add_class('LteNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ue-net-device.h: ns3::UeNetDevice [class]
-    module.add_class('UeNetDevice', parent=root_module['ns3::LteNetDevice'])
-    ## enb-net-device.h: ns3::EnbNetDevice [class]
-    module.add_class('EnbNetDevice', parent=root_module['ns3::LteNetDevice'])
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_types(module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_types(module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_types(module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_types(module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_types(module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_types(module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_types(module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_static_routing')
     module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
     module.add_container('std::vector< bool >', 'bool', container_type='vector')
     module.add_container('std::vector< int >', 'int', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::MprSelectorTuple >', 'ns3::olsr::MprSelectorTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::NeighborTuple >', 'ns3::olsr::NeighborTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::TwoHopNeighborTuple >', 'ns3::olsr::TwoHopNeighborTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::LinkTuple >', 'ns3::olsr::LinkTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::TopologyTuple >', 'ns3::olsr::TopologyTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::IfaceAssocTuple >', 'ns3::olsr::IfaceAssocTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::AssociationTuple >', 'ns3::olsr::AssociationTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::Association >', 'ns3::olsr::Association', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::RxPacketSample >', 'ns3::PyViz::RxPacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::TxPacketSample >', 'ns3::PyViz::TxPacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::PacketSample >', 'ns3::PyViz::PacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::TransmissionSample >', 'ns3::PyViz::TransmissionSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::PacketDropSample >', 'ns3::PyViz::PacketDropSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::NetDeviceStatistics >', 'ns3::PyViz::NetDeviceStatistics', container_type='vector')
     module.add_container('std::vector< std::string >', 'std::string', container_type='vector')
     module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
-    module.add_container('std::vector< ns3::PyViz::NodeStatistics >', 'ns3::PyViz::NodeStatistics', container_type='vector')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress >', container_type='list')
     module.add_container('std::vector< ns3::ServiceFlow * >', 'ns3::ServiceFlow *', container_type='vector')
-    module.add_container('std::vector< ns3::Tap >', 'ns3::Tap', container_type='vector')
     module.add_container('std::vector< std::complex< double > >', 'std::complex< double >', container_type='vector')
     module.add_container('std::vector< double >', 'double', container_type='vector')
     module.add_container('ns3::bvec', 'bool', container_type='vector')
     module.add_container('std::vector< ns3::SSRecord * >', 'ns3::SSRecord *', container_type='vector')
     module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
     module.add_container('std::set< unsigned char >', 'unsigned char', container_type='set')
-    module.add_container('std::list< ns3::UanPacketArrival >', 'ns3::UanPacketArrival', container_type='list')
-    module.add_container('std::vector< ns3::UeRecord::CqiFeedback >', 'ns3::UeRecord::CqiFeedback', container_type='vector')
     module.add_container('std::list< std::pair< ns3::OfdmDlMapIe *, ns3::Ptr< ns3::PacketBurst > > >', 'std::pair< ns3::OfdmDlMapIe *, ns3::Ptr< ns3::PacketBurst > >', container_type='list')
     module.add_container('std::vector< unsigned long long >', 'long long unsigned int', container_type='vector')
-    module.add_container('std::map< unsigned int, ns3::FlowMonitor::FlowStats >', ('unsigned int', 'ns3::FlowMonitor::FlowStats'), container_type='map')
-    module.add_container('std::map< unsigned int, ns3::FlowProbe::FlowStats >', ('unsigned int', 'ns3::FlowProbe::FlowStats'), container_type='map')
     module.add_container('std::vector< std::vector< double > >', 'std::vector< double >', container_type='vector')
     module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
-    module.add_container('std::deque< ns3::LteMacQueue::QueueElement >', 'ns3::LteMacQueue::QueueElement', container_type='dequeue')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type='list')
-    module.add_container('std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord >', 'ns3::PdcchMapIdealControlMessage::IdealPdcchRecord', container_type='list')
     module.add_container('std::vector< std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > > >', 'std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > >', container_type='vector')
-    module.add_container('std::list< ns3::CqiIdealControlMessage::CqiFeedback >', 'ns3::CqiIdealControlMessage::CqiFeedback', container_type='list')
-    typehandlers.add_type_alias('uint32_t', 'ns3::FlowPacketId')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowPacketId*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowPacketId&')
-    typehandlers.add_type_alias('uint32_t', 'ns3::FlowId')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowId*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowId&')
     
     ## Register a nested module for the namespace Config
     
@@ -993,21 +658,6 @@
 def register_types_ns3_dsdv(module):
     root_module = module.get_root()
     
-    ## dsdv-rtable.h: ns3::dsdv::RouteFlags [enumeration]
-    module.add_enum('RouteFlags', ['VALID', 'INVALID'])
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader [class]
-    module.add_class('DsdvHeader', parent=root_module['ns3::Header'])
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue [class]
-    module.add_class('PacketQueue')
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry [class]
-    module.add_class('QueueEntry')
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol [class]
-    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable [class]
-    module.add_class('RoutingTable')
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry [class]
-    module.add_class('RoutingTableEntry')
-    module.add_container('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry >', ('ns3::Ipv4Address', 'ns3::dsdv::RoutingTableEntry'), container_type='map')
 
 def register_types_ns3_flame(module):
     root_module = module.get_root()
@@ -1020,256 +670,8 @@
 def register_types_ns3_olsr(module):
     root_module = module.get_root()
     
-    ## olsr-repositories.h: ns3::olsr::Association [struct]
-    module.add_class('Association')
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple [struct]
-    module.add_class('AssociationTuple')
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple [struct]
-    module.add_class('DuplicateTuple')
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple [struct]
-    module.add_class('IfaceAssocTuple')
-    ## olsr-repositories.h: ns3::olsr::LinkTuple [struct]
-    module.add_class('LinkTuple')
-    ## olsr-header.h: ns3::olsr::MessageHeader [class]
-    module.add_class('MessageHeader', parent=root_module['ns3::Header'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType [enumeration]
-    module.add_enum('MessageType', ['HELLO_MESSAGE', 'TC_MESSAGE', 'MID_MESSAGE', 'HNA_MESSAGE'], outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello [struct]
-    module.add_class('Hello', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage [struct]
-    module.add_class('LinkMessage', outer_class=root_module['ns3::olsr::MessageHeader::Hello'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna [struct]
-    module.add_class('Hna', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association [struct]
-    module.add_class('Association', outer_class=root_module['ns3::olsr::MessageHeader::Hna'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid [struct]
-    module.add_class('Mid', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc [struct]
-    module.add_class('Tc', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple [struct]
-    module.add_class('MprSelectorTuple')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple [struct]
-    module.add_class('NeighborTuple')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::Status [enumeration]
-    module.add_enum('Status', ['STATUS_NOT_SYM', 'STATUS_SYM'], outer_class=root_module['ns3::olsr::NeighborTuple'])
-    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase [class]
-    module.add_class('OlsrMprTestCase', parent=root_module['ns3::TestCase'])
-    ## olsr-header.h: ns3::olsr::PacketHeader [class]
-    module.add_class('PacketHeader', parent=root_module['ns3::Header'])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol [class]
-    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry [struct]
-    module.add_class('RoutingTableEntry')
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple [struct]
-    module.add_class('TopologyTuple')
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple [struct]
-    module.add_class('TwoHopNeighborTuple')
-    module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
 
 def register_methods(root_module):
-    register_Ns3BridgeHelper_methods(root_module, root_module['ns3::BridgeHelper'])
-    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
-    register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
-    register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
-    register_Ns3FlowMonitorHelper_methods(root_module, root_module['ns3::FlowMonitorHelper'])
-    register_Ns3GlobalRouteManager_methods(root_module, root_module['ns3::GlobalRouteManager'])
-    register_Ns3GlobalRoutingLSA_methods(root_module, root_module['ns3::GlobalRoutingLSA'])
-    register_Ns3GlobalRoutingLinkRecord_methods(root_module, root_module['ns3::GlobalRoutingLinkRecord'])
-    register_Ns3Histogram_methods(root_module, root_module['ns3::Histogram'])
-    register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv4MulticastRoutingTableEntry'])
-    register_Ns3Ipv4RoutingTableEntry_methods(root_module, root_module['ns3::Ipv4RoutingTableEntry'])
-    register_Ns3Ipv4StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv4StaticRoutingHelper'])
-    register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv6MulticastRoutingTableEntry'])
-    register_Ns3Ipv6RoutingTableEntry_methods(root_module, root_module['ns3::Ipv6RoutingTableEntry'])
-    register_Ns3Ipv6StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv6StaticRoutingHelper'])
-    register_Ns3LteHelper_methods(root_module, root_module['ns3::LteHelper'])
-    register_Ns3LteSpectrumValueHelper_methods(root_module, root_module['ns3::LteSpectrumValueHelper'])
-    register_Ns3OlsrHelper_methods(root_module, root_module['ns3::OlsrHelper'])
-    register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
-    register_Ns3PyViz_methods(root_module, root_module['ns3::PyViz'])
-    register_Ns3PyVizLastPacketsSample_methods(root_module, root_module['ns3::PyViz::LastPacketsSample'])
-    register_Ns3PyVizNetDeviceStatistics_methods(root_module, root_module['ns3::PyViz::NetDeviceStatistics'])
-    register_Ns3PyVizNodeStatistics_methods(root_module, root_module['ns3::PyViz::NodeStatistics'])
-    register_Ns3PyVizPacketCaptureOptions_methods(root_module, root_module['ns3::PyViz::PacketCaptureOptions'])
-    register_Ns3PyVizPacketDropSample_methods(root_module, root_module['ns3::PyViz::PacketDropSample'])
-    register_Ns3PyVizPacketSample_methods(root_module, root_module['ns3::PyViz::PacketSample'])
-    register_Ns3PyVizRxPacketSample_methods(root_module, root_module['ns3::PyViz::RxPacketSample'])
-    register_Ns3PyVizTransmissionSample_methods(root_module, root_module['ns3::PyViz::TransmissionSample'])
-    register_Ns3PyVizTxPacketSample_methods(root_module, root_module['ns3::PyViz::TxPacketSample'])
-    register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
-    register_Ns3RvBatteryModelHelper_methods(root_module, root_module['ns3::RvBatteryModelHelper'])
-    register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
-    register_Ns3UanAddress_methods(root_module, root_module['ns3::UanAddress'])
-    register_Ns3UanHelper_methods(root_module, root_module['ns3::UanHelper'])
-    register_Ns3UanModesList_methods(root_module, root_module['ns3::UanModesList'])
-    register_Ns3UanPacketArrival_methods(root_module, root_module['ns3::UanPacketArrival'])
-    register_Ns3UanPdp_methods(root_module, root_module['ns3::UanPdp'])
-    register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
-    register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
-    register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
-    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
-    register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener'])
-    register_Ns3AcousticModemEnergyModelHelper_methods(root_module, root_module['ns3::AcousticModemEnergyModelHelper'])
-    register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
-    register_Ns3DsdvHelper_methods(root_module, root_module['ns3::DsdvHelper'])
-    register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, root_module['ns3::Ipv4GlobalRoutingHelper'])
-    register_Ns3Ipv4ListRoutingHelper_methods(root_module, root_module['ns3::Ipv4ListRoutingHelper'])
-    register_Ns3Ipv6ListRoutingHelper_methods(root_module, root_module['ns3::Ipv6ListRoutingHelper'])
-    register_Ns3LteMacHeader_methods(root_module, root_module['ns3::LteMacHeader'])
-    register_Ns3PacketScheduler_methods(root_module, root_module['ns3::PacketScheduler'])
-    register_Ns3RadioBearerInstance_methods(root_module, root_module['ns3::RadioBearerInstance'])
-    register_Ns3RlcEntity_methods(root_module, root_module['ns3::RlcEntity'])
-    register_Ns3RrcEntity_methods(root_module, root_module['ns3::RrcEntity'])
-    register_Ns3SimplePacketScheduler_methods(root_module, root_module['ns3::SimplePacketScheduler'])
-    register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
-    register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
-    register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
-    register_Ns3UanHeaderRcCtsGlobal_methods(root_module, root_module['ns3::UanHeaderRcCtsGlobal'])
-    register_Ns3UanHeaderRcData_methods(root_module, root_module['ns3::UanHeaderRcData'])
-    register_Ns3UanHeaderRcRts_methods(root_module, root_module['ns3::UanHeaderRcRts'])
-    register_Ns3UanMac_methods(root_module, root_module['ns3::UanMac'])
-    register_Ns3UanMacAloha_methods(root_module, root_module['ns3::UanMacAloha'])
-    register_Ns3UanMacCw_methods(root_module, root_module['ns3::UanMacCw'])
-    register_Ns3UanMacRc_methods(root_module, root_module['ns3::UanMacRc'])
-    register_Ns3UanMacRcGw_methods(root_module, root_module['ns3::UanMacRcGw'])
-    register_Ns3UanNoiseModel_methods(root_module, root_module['ns3::UanNoiseModel'])
-    register_Ns3UanNoiseModelDefault_methods(root_module, root_module['ns3::UanNoiseModelDefault'])
-    register_Ns3UanPhy_methods(root_module, root_module['ns3::UanPhy'])
-    register_Ns3UanPhyCalcSinr_methods(root_module, root_module['ns3::UanPhyCalcSinr'])
-    register_Ns3UanPhyCalcSinrDefault_methods(root_module, root_module['ns3::UanPhyCalcSinrDefault'])
-    register_Ns3UanPhyCalcSinrDual_methods(root_module, root_module['ns3::UanPhyCalcSinrDual'])
-    register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, root_module['ns3::UanPhyCalcSinrFhFsk'])
-    register_Ns3UanPhyDual_methods(root_module, root_module['ns3::UanPhyDual'])
-    register_Ns3UanPhyGen_methods(root_module, root_module['ns3::UanPhyGen'])
-    register_Ns3UanPhyPer_methods(root_module, root_module['ns3::UanPhyPer'])
-    register_Ns3UanPhyPerGenDefault_methods(root_module, root_module['ns3::UanPhyPerGenDefault'])
-    register_Ns3UanPhyPerUmodem_methods(root_module, root_module['ns3::UanPhyPerUmodem'])
-    register_Ns3UanPropModel_methods(root_module, root_module['ns3::UanPropModel'])
-    register_Ns3UanPropModelIdeal_methods(root_module, root_module['ns3::UanPropModelIdeal'])
-    register_Ns3UanPropModelThorp_methods(root_module, root_module['ns3::UanPropModelThorp'])
-    register_Ns3UanTransducer_methods(root_module, root_module['ns3::UanTransducer'])
-    register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
-    register_Ns3UeManager_methods(root_module, root_module['ns3::UeManager'])
-    register_Ns3UeRecord_methods(root_module, root_module['ns3::UeRecord'])
-    register_Ns3UeRecordCqiFeedback_methods(root_module, root_module['ns3::UeRecord::CqiFeedback'])
-    register_Ns3AmcModule_methods(root_module, root_module['ns3::AmcModule'])
-    register_Ns3BearerQosParameters_methods(root_module, root_module['ns3::BearerQosParameters'])
-    register_Ns3ChannelRealization_methods(root_module, root_module['ns3::ChannelRealization'])
-    register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
-    register_Ns3DiscreteTimeLossModel_methods(root_module, root_module['ns3::DiscreteTimeLossModel'])
-    register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
-    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
-    register_Ns3FlowClassifier_methods(root_module, root_module['ns3::FlowClassifier'])
-    register_Ns3FlowMonitor_methods(root_module, root_module['ns3::FlowMonitor'])
-    register_Ns3FlowMonitorFlowStats_methods(root_module, root_module['ns3::FlowMonitor::FlowStats'])
-    register_Ns3FlowProbe_methods(root_module, root_module['ns3::FlowProbe'])
-    register_Ns3FlowProbeFlowStats_methods(root_module, root_module['ns3::FlowProbe::FlowStats'])
-    register_Ns3GlobalRouter_methods(root_module, root_module['ns3::GlobalRouter'])
-    register_Ns3IdealControlMessage_methods(root_module, root_module['ns3::IdealControlMessage'])
-    register_Ns3Ipv4FlowClassifier_methods(root_module, root_module['ns3::Ipv4FlowClassifier'])
-    register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, root_module['ns3::Ipv4FlowClassifier::FiveTuple'])
-    register_Ns3Ipv4FlowProbe_methods(root_module, root_module['ns3::Ipv4FlowProbe'])
-    register_Ns3Ipv4StaticRouting_methods(root_module, root_module['ns3::Ipv4StaticRouting'])
-    register_Ns3Ipv6StaticRouting_methods(root_module, root_module['ns3::Ipv6StaticRouting'])
-    register_Ns3JakesFadingLossModel_methods(root_module, root_module['ns3::JakesFadingLossModel'])
-    register_Ns3LiIonEnergySource_methods(root_module, root_module['ns3::LiIonEnergySource'])
-    register_Ns3LteMacQueue_methods(root_module, root_module['ns3::LteMacQueue'])
-    register_Ns3LtePhy_methods(root_module, root_module['ns3::LtePhy'])
-    register_Ns3LtePropagationLossModel_methods(root_module, root_module['ns3::LtePropagationLossModel'])
-    register_Ns3LteSpectrumPhy_methods(root_module, root_module['ns3::LteSpectrumPhy'])
-    register_Ns3MacEntity_methods(root_module, root_module['ns3::MacEntity'])
-    register_Ns3PathLossModel_methods(root_module, root_module['ns3::PathLossModel'])
-    register_Ns3PdcchMapIdealControlMessage_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage'])
-    register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage::IdealPdcchRecord'])
-    register_Ns3PenetrationLossModel_methods(root_module, root_module['ns3::PenetrationLossModel'])
-    register_Ns3RvBatteryModel_methods(root_module, root_module['ns3::RvBatteryModel'])
-    register_Ns3ShadowingLossModel_methods(root_module, root_module['ns3::ShadowingLossModel'])
-    register_Ns3SimpleDeviceEnergyModel_methods(root_module, root_module['ns3::SimpleDeviceEnergyModel'])
-    register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
-    register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
-    register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
-    register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
-    register_Ns3UeLtePhy_methods(root_module, root_module['ns3::UeLtePhy'])
-    register_Ns3UeLteSpectrumPhy_methods(root_module, root_module['ns3::UeLteSpectrumPhy'])
-    register_Ns3UeMacEntity_methods(root_module, root_module['ns3::UeMacEntity'])
-    register_Ns3VirtualNetDevice_methods(root_module, root_module['ns3::VirtualNetDevice'])
-    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
-    register_Ns3AcousticModemEnergyModel_methods(root_module, root_module['ns3::AcousticModemEnergyModel'])
-    register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
-    register_Ns3BridgeChannel_methods(root_module, root_module['ns3::BridgeChannel'])
-    register_Ns3BridgeNetDevice_methods(root_module, root_module['ns3::BridgeNetDevice'])
-    register_Ns3CqiIdealControlMessage_methods(root_module, root_module['ns3::CqiIdealControlMessage'])
-    register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, root_module['ns3::CqiIdealControlMessage::CqiFeedback'])
-    register_Ns3EnbLtePhy_methods(root_module, root_module['ns3::EnbLtePhy'])
-    register_Ns3EnbLteSpectrumPhy_methods(root_module, root_module['ns3::EnbLteSpectrumPhy'])
-    register_Ns3EnbMacEntity_methods(root_module, root_module['ns3::EnbMacEntity'])
-    register_Ns3Ipv4GlobalRouting_methods(root_module, root_module['ns3::Ipv4GlobalRouting'])
-    register_Ns3Ipv4ListRouting_methods(root_module, root_module['ns3::Ipv4ListRouting'])
-    register_Ns3Ipv6ListRouting_methods(root_module, root_module['ns3::Ipv6ListRouting'])
-    register_Ns3LteNetDevice_methods(root_module, root_module['ns3::LteNetDevice'])
-    register_Ns3UeNetDevice_methods(root_module, root_module['ns3::UeNetDevice'])
-    register_Ns3EnbNetDevice_methods(root_module, root_module['ns3::EnbNetDevice'])
-    register_Ns3DsdvDsdvHeader_methods(root_module, root_module['ns3::dsdv::DsdvHeader'])
-    register_Ns3DsdvPacketQueue_methods(root_module, root_module['ns3::dsdv::PacketQueue'])
-    register_Ns3DsdvQueueEntry_methods(root_module, root_module['ns3::dsdv::QueueEntry'])
-    register_Ns3DsdvRoutingProtocol_methods(root_module, root_module['ns3::dsdv::RoutingProtocol'])
-    register_Ns3DsdvRoutingTable_methods(root_module, root_module['ns3::dsdv::RoutingTable'])
-    register_Ns3DsdvRoutingTableEntry_methods(root_module, root_module['ns3::dsdv::RoutingTableEntry'])
-    register_Ns3OlsrAssociation_methods(root_module, root_module['ns3::olsr::Association'])
-    register_Ns3OlsrAssociationTuple_methods(root_module, root_module['ns3::olsr::AssociationTuple'])
-    register_Ns3OlsrDuplicateTuple_methods(root_module, root_module['ns3::olsr::DuplicateTuple'])
-    register_Ns3OlsrIfaceAssocTuple_methods(root_module, root_module['ns3::olsr::IfaceAssocTuple'])
-    register_Ns3OlsrLinkTuple_methods(root_module, root_module['ns3::olsr::LinkTuple'])
-    register_Ns3OlsrMessageHeader_methods(root_module, root_module['ns3::olsr::MessageHeader'])
-    register_Ns3OlsrMessageHeaderHello_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello'])
-    register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello::LinkMessage'])
-    register_Ns3OlsrMessageHeaderHna_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna'])
-    register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna::Association'])
-    register_Ns3OlsrMessageHeaderMid_methods(root_module, root_module['ns3::olsr::MessageHeader::Mid'])
-    register_Ns3OlsrMessageHeaderTc_methods(root_module, root_module['ns3::olsr::MessageHeader::Tc'])
-    register_Ns3OlsrMprSelectorTuple_methods(root_module, root_module['ns3::olsr::MprSelectorTuple'])
-    register_Ns3OlsrNeighborTuple_methods(root_module, root_module['ns3::olsr::NeighborTuple'])
-    register_Ns3OlsrOlsrMprTestCase_methods(root_module, root_module['ns3::olsr::OlsrMprTestCase'])
-    register_Ns3OlsrPacketHeader_methods(root_module, root_module['ns3::olsr::PacketHeader'])
-    register_Ns3OlsrRoutingProtocol_methods(root_module, root_module['ns3::olsr::RoutingProtocol'])
-    register_Ns3OlsrRoutingTableEntry_methods(root_module, root_module['ns3::olsr::RoutingTableEntry'])
-    register_Ns3OlsrTopologyTuple_methods(root_module, root_module['ns3::olsr::TopologyTuple'])
-    register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, root_module['ns3::olsr::TwoHopNeighborTuple'])
     root_module.begin_section('ns3_module_core')
     ns3_module_core.register_methods(root_module)
     
@@ -1281,17 +683,6 @@
         ns3_module_core__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_methods(root_module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_methods(root_module)
     
@@ -1424,28 +815,6 @@
         ns3_module_emu__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_methods(root_module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_methods(root_module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_methods(root_module)
     
@@ -1457,17 +826,6 @@
         ns3_module_internet_stack__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_methods(root_module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_methods(root_module)
     
@@ -1501,28 +859,17 @@
         ns3_module_point_to_point__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_methods(root_module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_methods(root_module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_methods(root_module)
+        ns3_module_propagation__local.register_methods(root_module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_methods(root_module)
     
@@ -1600,17 +947,6 @@
         ns3_module_wimax__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_methods(root_module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_methods(root_module)
     
@@ -1644,17 +980,6 @@
         ns3_module_nix_vector_routing__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_methods(root_module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_methods(root_module)
     
@@ -1699,17 +1024,28 @@
         ns3_module_udp_echo__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_methods(root_module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_methods(root_module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_methods(root_module)
+        ns3_module_spectrum__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_methods(root_module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_methods(root_module)
     
@@ -1732,6 +1068,28 @@
         ns3_module_helper__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_methods(root_module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_methods(root_module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_methods(root_module)
     
@@ -1754,8511 +1112,61 @@
         ns3_module_flame__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_flame')
-    return
-
-def register_Ns3BridgeHelper_methods(root_module, cls):
-    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper(ns3::BridgeHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeHelper const &', 'arg0')])
-    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper() [constructor]
-    cls.add_constructor([])
-    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(ns3::Ptr<ns3::Node> node, ns3::NetDeviceContainer c) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::NetDeviceContainer', 'c')])
-    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(std::string nodeName, ns3::NetDeviceContainer c) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName'), param('ns3::NetDeviceContainer', 'c')])
-    ## bridge-helper.h: void ns3::BridgeHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    return
-
-def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
-    cls.add_constructor([])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
-    cls.add_constructor([param('std::string', 'modelName')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::DeviceEnergyModelContainer', 'container')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('std::string', 'modelName')])
-    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
-    cls.add_method('Get', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
-    cls.add_method('GetN', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('Install', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
-    cls.add_method('Install', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnergySourceHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
-    cls.add_method('InstallAll', 
-                   'ns3::EnergySourceContainer', 
-                   [], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FlowMonitorHelper_methods(root_module, cls):
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper(ns3::FlowMonitorHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitorHelper const &', 'arg0')])
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowClassifier> ns3::FlowMonitorHelper::GetClassifier() [member function]
-    cls.add_method('GetClassifier', 
-                   'ns3::Ptr< ns3::FlowClassifier >', 
-                   [])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::GetMonitor() [member function]
-    cls.add_method('GetMonitor', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::NodeContainer nodes) [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [param('ns3::NodeContainer', 'nodes')])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::InstallAll() [member function]
-    cls.add_method('InstallAll', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [])
-    ## flow-monitor-helper.h: void ns3::FlowMonitorHelper::SetMonitorAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetMonitorAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    return
-
-def register_Ns3GlobalRouteManager_methods(root_module, cls):
-    ## global-route-manager.h: static uint32_t ns3::GlobalRouteManager::AllocateRouterId() [member function]
-    cls.add_method('AllocateRouterId', 
-                   'uint32_t', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::DeleteGlobalRoutes() [member function]
-    cls.add_method('DeleteGlobalRoutes', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::BuildGlobalRoutingDatabase() [member function]
-    cls.add_method('BuildGlobalRoutingDatabase', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::InitializeRoutes() [member function]
-    cls.add_method('InitializeRoutes', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3GlobalRoutingLSA_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA::SPFStatus status, ns3::Ipv4Address linkStateId, ns3::Ipv4Address advertisingRtr) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLSA::SPFStatus', 'status'), param('ns3::Ipv4Address', 'linkStateId'), param('ns3::Ipv4Address', 'advertisingRtr')])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA & lsa) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLSA &', 'lsa')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddAttachedRouter(ns3::Ipv4Address addr) [member function]
-    cls.add_method('AddAttachedRouter', 
-                   'uint32_t', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddLinkRecord(ns3::GlobalRoutingLinkRecord * lr) [member function]
-    cls.add_method('AddLinkRecord', 
-                   'uint32_t', 
-                   [param('ns3::GlobalRoutingLinkRecord *', 'lr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::ClearLinkRecords() [member function]
-    cls.add_method('ClearLinkRecords', 
-                   'void', 
-                   [])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::CopyLinkRecords(ns3::GlobalRoutingLSA const & lsa) [member function]
-    cls.add_method('CopyLinkRecords', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA const &', 'lsa')])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAdvertisingRouter() const [member function]
-    cls.add_method('GetAdvertisingRouter', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAttachedRouter(uint32_t n) const [member function]
-    cls.add_method('GetAttachedRouter', 
-                   'ns3::Ipv4Address', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType ns3::GlobalRoutingLSA::GetLSType() const [member function]
-    cls.add_method('GetLSType', 
-                   'ns3::GlobalRoutingLSA::LSType', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord * ns3::GlobalRoutingLSA::GetLinkRecord(uint32_t n) const [member function]
-    cls.add_method('GetLinkRecord', 
-                   'ns3::GlobalRoutingLinkRecord *', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetLinkStateId() const [member function]
-    cls.add_method('GetLinkStateId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNAttachedRouters() const [member function]
-    cls.add_method('GetNAttachedRouters', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNLinkRecords() const [member function]
-    cls.add_method('GetNLinkRecords', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Mask ns3::GlobalRoutingLSA::GetNetworkLSANetworkMask() const [member function]
-    cls.add_method('GetNetworkLSANetworkMask', 
-                   'ns3::Ipv4Mask', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ptr<ns3::Node> ns3::GlobalRoutingLSA::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus ns3::GlobalRoutingLSA::GetStatus() const [member function]
-    cls.add_method('GetStatus', 
-                   'ns3::GlobalRoutingLSA::SPFStatus', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: bool ns3::GlobalRoutingLSA::IsEmpty() const [member function]
-    cls.add_method('IsEmpty', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetAdvertisingRouter(ns3::Ipv4Address rtr) [member function]
-    cls.add_method('SetAdvertisingRouter', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'rtr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLSType(ns3::GlobalRoutingLSA::LSType typ) [member function]
-    cls.add_method('SetLSType', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA::LSType', 'typ')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLinkStateId(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkStateId', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNetworkLSANetworkMask(ns3::Ipv4Mask mask) [member function]
-    cls.add_method('SetNetworkLSANetworkMask', 
-                   'void', 
-                   [param('ns3::Ipv4Mask', 'mask')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetStatus(ns3::GlobalRoutingLSA::SPFStatus status) [member function]
-    cls.add_method('SetStatus', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA::SPFStatus', 'status')])
-    return
-
-def register_Ns3GlobalRoutingLinkRecord_methods(root_module, cls):
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord const &', 'arg0')])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord::LinkType linkType, ns3::Ipv4Address linkId, ns3::Ipv4Address linkData, uint16_t metric) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType'), param('ns3::Ipv4Address', 'linkId'), param('ns3::Ipv4Address', 'linkData'), param('uint16_t', 'metric')])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkData() const [member function]
-    cls.add_method('GetLinkData', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkId() const [member function]
-    cls.add_method('GetLinkId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType ns3::GlobalRoutingLinkRecord::GetLinkType() const [member function]
-    cls.add_method('GetLinkType', 
-                   'ns3::GlobalRoutingLinkRecord::LinkType', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint16_t ns3::GlobalRoutingLinkRecord::GetMetric() const [member function]
-    cls.add_method('GetMetric', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkData(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkData', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkId(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkId', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkType(ns3::GlobalRoutingLinkRecord::LinkType linkType) [member function]
-    cls.add_method('SetLinkType', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetMetric(uint16_t metric) [member function]
-    cls.add_method('SetMetric', 
-                   'void', 
-                   [param('uint16_t', 'metric')])
-    return
-
-def register_Ns3Histogram_methods(root_module, cls):
-    ## histogram.h: ns3::Histogram::Histogram(ns3::Histogram const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Histogram const &', 'arg0')])
-    ## histogram.h: ns3::Histogram::Histogram(double binWidth) [constructor]
-    cls.add_constructor([param('double', 'binWidth')])
-    ## histogram.h: ns3::Histogram::Histogram() [constructor]
-    cls.add_constructor([])
-    ## histogram.h: void ns3::Histogram::AddValue(double value) [member function]
-    cls.add_method('AddValue', 
-                   'void', 
-                   [param('double', 'value')])
-    ## histogram.h: uint32_t ns3::Histogram::GetBinCount(uint32_t index) [member function]
-    cls.add_method('GetBinCount', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinEnd(uint32_t index) [member function]
-    cls.add_method('GetBinEnd', 
-                   'double', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinStart(uint32_t index) [member function]
-    cls.add_method('GetBinStart', 
-                   'double', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinWidth(uint32_t index) const [member function]
-    cls.add_method('GetBinWidth', 
-                   'double', 
-                   [param('uint32_t', 'index')], 
-                   is_const=True)
-    ## histogram.h: uint32_t ns3::Histogram::GetNBins() const [member function]
-    cls.add_method('GetNBins', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## histogram.h: void ns3::Histogram::SerializeToXmlStream(std::ostream & os, int indent, std::string elementName) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('std::string', 'elementName')], 
-                   is_const=True)
-    ## histogram.h: void ns3::Histogram::SetDefaultBinWidth(double binWidth) [member function]
-    cls.add_method('SetDefaultBinWidth', 
-                   'void', 
-                   [param('double', 'binWidth')])
-    return
-
-def register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const &', 'route')])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const *', 'route')])
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('CreateMulticastRoute', 
-                   'ns3::Ipv4MulticastRoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetGroup() const [member function]
-    cls.add_method('GetGroup', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetInputInterface() const [member function]
-    cls.add_method('GetInputInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
-    cls.add_method('GetNOutputInterfaces', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetOrigin() const [member function]
-    cls.add_method('GetOrigin', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
-    cls.add_method('GetOutputInterface', 
-                   'uint32_t', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
-    cls.add_method('GetOutputInterfaces', 
-                   'std::vector< unsigned int >', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv4RoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const &', 'route')])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const *', 'route')])
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateDefaultRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDestNetwork() const [member function]
-    cls.add_method('GetDestNetwork', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Mask ns3::Ipv4RoutingTableEntry::GetDestNetworkMask() const [member function]
-    cls.add_method('GetDestNetworkMask', 
-                   'ns3::Ipv4Mask', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetGateway() const [member function]
-    cls.add_method('GetGateway', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsDefault() const [member function]
-    cls.add_method('IsDefault', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsGateway() const [member function]
-    cls.add_method('IsGateway', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsHost() const [member function]
-    cls.add_method('IsHost', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsNetwork() const [member function]
-    cls.add_method('IsNetwork', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv4StaticRoutingHelper_methods(root_module, cls):
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper(ns3::Ipv4StaticRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4StaticRoutingHelper const &', 'arg0')])
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper * ns3::Ipv4StaticRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4StaticRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4StaticRouting> ns3::Ipv4StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv4> ipv4) const [member function]
-    cls.add_method('GetStaticRouting', 
-                   'ns3::Ptr< ns3::Ipv4StaticRouting >', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_const=True)
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ptr<ns3::NetDevice> nd) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, std::string ndName) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('std::string', 'ndName')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, ns3::Ptr<ns3::NetDevice> nd) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, std::string ndName) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('std::string', 'ndName')])
-    return
-
-def register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const &', 'route')])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const *', 'route')])
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('CreateMulticastRoute', 
-                   'ns3::Ipv6MulticastRoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetGroup() const [member function]
-    cls.add_method('GetGroup', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetInputInterface() const [member function]
-    cls.add_method('GetInputInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
-    cls.add_method('GetNOutputInterfaces', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetOrigin() const [member function]
-    cls.add_method('GetOrigin', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
-    cls.add_method('GetOutputInterface', 
-                   'uint32_t', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
-    cls.add_method('GetOutputInterfaces', 
-                   'std::vector< unsigned int >', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv6RoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const &', 'route')])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const *', 'route')])
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateDefaultRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address()) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address()')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDestNetwork() const [member function]
-    cls.add_method('GetDestNetwork', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Prefix ns3::Ipv6RoutingTableEntry::GetDestNetworkPrefix() const [member function]
-    cls.add_method('GetDestNetworkPrefix', 
-                   'ns3::Ipv6Prefix', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetGateway() const [member function]
-    cls.add_method('GetGateway', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetPrefixToUse() const [member function]
-    cls.add_method('GetPrefixToUse', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsDefault() const [member function]
-    cls.add_method('IsDefault', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsGateway() const [member function]
-    cls.add_method('IsGateway', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsHost() const [member function]
-    cls.add_method('IsHost', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsNetwork() const [member function]
-    cls.add_method('IsNetwork', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: void ns3::Ipv6RoutingTableEntry::SetPrefixToUse(ns3::Ipv6Address prefix) [member function]
-    cls.add_method('SetPrefixToUse', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'prefix')])
-    return
-
-def register_Ns3Ipv6StaticRoutingHelper_methods(root_module, cls):
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper(ns3::Ipv6StaticRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6StaticRoutingHelper const &', 'arg0')])
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper * ns3::Ipv6StaticRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv6StaticRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6StaticRouting> ns3::Ipv6StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv6> ipv6) const [member function]
-    cls.add_method('GetStaticRouting', 
-                   'ns3::Ptr< ns3::Ipv6StaticRouting >', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_const=True)
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    return
-
-def register_Ns3LteHelper_methods(root_module, cls):
-    ## lte-helper.h: ns3::LteHelper::LteHelper(ns3::LteHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteHelper const &', 'arg0')])
-    ## lte-helper.h: ns3::LteHelper::LteHelper() [constructor]
-    cls.add_constructor([])
-    ## lte-helper.h: void ns3::LteHelper::AddDownlinkChannelRealization(ns3::Ptr<ns3::MobilityModel> enbMobility, ns3::Ptr<ns3::MobilityModel> ueMobility, ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('AddDownlinkChannelRealization', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel >', 'ueMobility'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## lte-helper.h: void ns3::LteHelper::AddMobility(ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::MobilityModel> m) [member function]
-    cls.add_method('AddMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::MobilityModel >', 'm')])
-    ## lte-helper.h: void ns3::LteHelper::EnableLogComponents() [member function]
-    cls.add_method('EnableLogComponents', 
-                   'void', 
-                   [])
-    ## lte-helper.h: ns3::NetDeviceContainer ns3::LteHelper::Install(ns3::NodeContainer c, ns3::LteHelper::NetDeviceType type) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c'), param('ns3::LteHelper::NetDeviceType', 'type')])
-    ## lte-helper.h: void ns3::LteHelper::RegisterUeToTheEnb(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('RegisterUeToTheEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    return
-
-def register_Ns3LteSpectrumValueHelper_methods(root_module, cls):
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper() [constructor]
-    cls.add_constructor([])
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper(ns3::LteSpectrumValueHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteSpectrumValueHelper const &', 'arg0')])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkNoisePowerSpectralDensity() [member function]
-    cls.add_method('CreateDownlinkNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
-    cls.add_method('CreateDownlinkTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkNoisePowerSpectralDensity() [member function]
-    cls.add_method('CreateUplinkNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
-    cls.add_method('CreateUplinkTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
-    return
-
-def register_Ns3OlsrHelper_methods(root_module, cls):
-    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper() [constructor]
-    cls.add_constructor([])
-    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper(ns3::OlsrHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::OlsrHelper const &', 'arg0')])
-    ## olsr-helper.h: ns3::OlsrHelper * ns3::OlsrHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::OlsrHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-helper.h: void ns3::OlsrHelper::ExcludeInterface(ns3::Ptr<ns3::Node> node, uint32_t interface) [member function]
-    cls.add_method('ExcludeInterface', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'interface')])
-    ## olsr-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::OlsrHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-helper.h: void ns3::OlsrHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
-    return
-
-def register_Ns3OlsrState_methods(root_module, cls):
-    ## olsr-state.h: ns3::OlsrState::OlsrState(ns3::OlsrState const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::OlsrState const &', 'arg0')])
-    ## olsr-state.h: ns3::OlsrState::OlsrState() [constructor]
-    cls.add_constructor([])
-    ## olsr-state.h: void ns3::OlsrState::EraseAssociation(ns3::olsr::Association const & tuple) [member function]
-    cls.add_method('EraseAssociation', 
-                   'void', 
-                   [param('ns3::olsr::Association const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
-    cls.add_method('EraseAssociationTuple', 
-                   'void', 
-                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
-    cls.add_method('EraseDuplicateTuple', 
-                   'void', 
-                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
-    cls.add_method('EraseIfaceAssocTuple', 
-                   'void', 
-                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
-    cls.add_method('EraseLinkTuple', 
-                   'void', 
-                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
-    cls.add_method('EraseMprSelectorTuple', 
-                   'void', 
-                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuples(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('EraseMprSelectorTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::olsr::NeighborTuple const & neighborTuple) [member function]
-    cls.add_method('EraseNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::NeighborTuple const &', 'neighborTuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('EraseNeighborTuple', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: void ns3::OlsrState::EraseOlderTopologyTuples(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
-    cls.add_method('EraseOlderTopologyTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
-    cls.add_method('EraseTopologyTuple', 
-                   'void', 
-                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
-    cls.add_method('EraseTwoHopNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor) [member function]
-    cls.add_method('EraseTwoHopNeighborTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'neighbor')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
-    cls.add_method('EraseTwoHopNeighborTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
-    ## olsr-state.h: ns3::olsr::AssociationTuple * ns3::OlsrState::FindAssociationTuple(ns3::Ipv4Address const & gatewayAddr, ns3::Ipv4Address const & networkAddr, ns3::Ipv4Mask const & netmask) [member function]
-    cls.add_method('FindAssociationTuple', 
-                   'ns3::olsr::AssociationTuple *', 
-                   [param('ns3::Ipv4Address const &', 'gatewayAddr'), param('ns3::Ipv4Address const &', 'networkAddr'), param('ns3::Ipv4Mask const &', 'netmask')])
-    ## olsr-state.h: ns3::olsr::DuplicateTuple * ns3::OlsrState::FindDuplicateTuple(ns3::Ipv4Address const & address, uint16_t sequenceNumber) [member function]
-    cls.add_method('FindDuplicateTuple', 
-                   'ns3::olsr::DuplicateTuple *', 
-                   [param('ns3::Ipv4Address const &', 'address'), param('uint16_t', 'sequenceNumber')])
-    ## olsr-state.h: ns3::olsr::IfaceAssocTuple * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
-    cls.add_method('FindIfaceAssocTuple', 
-                   'ns3::olsr::IfaceAssocTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
-    ## olsr-state.h: ns3::olsr::IfaceAssocTuple const * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) const [member function]
-    cls.add_method('FindIfaceAssocTuple', 
-                   'ns3::olsr::IfaceAssocTuple const *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindLinkTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
-    cls.add_method('FindLinkTuple', 
-                   'ns3::olsr::LinkTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
-    ## olsr-state.h: bool ns3::OlsrState::FindMprAddress(ns3::Ipv4Address const & address) [member function]
-    cls.add_method('FindMprAddress', 
-                   'bool', 
-                   [param('ns3::Ipv4Address const &', 'address')])
-    ## olsr-state.h: ns3::olsr::MprSelectorTuple * ns3::OlsrState::FindMprSelectorTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('FindMprSelectorTuple', 
-                   'ns3::olsr::MprSelectorTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: std::vector<ns3::Ipv4Address, std::allocator<ns3::Ipv4Address> > ns3::OlsrState::FindNeighborInterfaces(ns3::Ipv4Address const & neighborMainAddr) const [member function]
-    cls.add_method('FindNeighborInterfaces', 
-                   'std::vector< ns3::Ipv4Address >', 
-                   [param('ns3::Ipv4Address const &', 'neighborMainAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('FindNeighborTuple', 
-                   'ns3::olsr::NeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr, uint8_t willingness) [member function]
-    cls.add_method('FindNeighborTuple', 
-                   'ns3::olsr::NeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr'), param('uint8_t', 'willingness')])
-    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindNewerTopologyTuple(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
-    cls.add_method('FindNewerTopologyTuple', 
-                   'ns3::olsr::TopologyTuple *', 
-                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
-    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindSymLinkTuple(ns3::Ipv4Address const & ifaceAddr, ns3::Time time) [member function]
-    cls.add_method('FindSymLinkTuple', 
-                   'ns3::olsr::LinkTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr'), param('ns3::Time', 'time')])
-    ## olsr-state.h: ns3::olsr::NeighborTuple const * ns3::OlsrState::FindSymNeighborTuple(ns3::Ipv4Address const & mainAddr) const [member function]
-    cls.add_method('FindSymNeighborTuple', 
-                   'ns3::olsr::NeighborTuple const *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindTopologyTuple(ns3::Ipv4Address const & destAddr, ns3::Ipv4Address const & lastAddr) [member function]
-    cls.add_method('FindTopologyTuple', 
-                   'ns3::olsr::TopologyTuple *', 
-                   [param('ns3::Ipv4Address const &', 'destAddr'), param('ns3::Ipv4Address const &', 'lastAddr')])
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborTuple * ns3::OlsrState::FindTwoHopNeighborTuple(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
-    cls.add_method('FindTwoHopNeighborTuple', 
-                   'ns3::olsr::TwoHopNeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
-    ## olsr-state.h: ns3::olsr::AssociationSet const & ns3::OlsrState::GetAssociationSet() const [member function]
-    cls.add_method('GetAssociationSet', 
-                   'ns3::olsr::AssociationSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::Associations const & ns3::OlsrState::GetAssociations() const [member function]
-    cls.add_method('GetAssociations', 
-                   'ns3::olsr::Associations const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::IfaceAssocSet const & ns3::OlsrState::GetIfaceAssocSet() const [member function]
-    cls.add_method('GetIfaceAssocSet', 
-                   'ns3::olsr::IfaceAssocSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::IfaceAssocSet & ns3::OlsrState::GetIfaceAssocSetMutable() [member function]
-    cls.add_method('GetIfaceAssocSetMutable', 
-                   'ns3::olsr::IfaceAssocSet &', 
-                   [])
-    ## olsr-state.h: ns3::olsr::LinkSet const & ns3::OlsrState::GetLinks() const [member function]
-    cls.add_method('GetLinks', 
-                   'ns3::olsr::LinkSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::MprSelectorSet const & ns3::OlsrState::GetMprSelectors() const [member function]
-    cls.add_method('GetMprSelectors', 
-                   'ns3::olsr::MprSelectorSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::MprSet ns3::OlsrState::GetMprSet() const [member function]
-    cls.add_method('GetMprSet', 
-                   'ns3::olsr::MprSet', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborSet const & ns3::OlsrState::GetNeighbors() const [member function]
-    cls.add_method('GetNeighbors', 
-                   'ns3::olsr::NeighborSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborSet & ns3::OlsrState::GetNeighbors() [member function]
-    cls.add_method('GetNeighbors', 
-                   'ns3::olsr::NeighborSet &', 
-                   [])
-    ## olsr-state.h: ns3::olsr::TopologySet const & ns3::OlsrState::GetTopologySet() const [member function]
-    cls.add_method('GetTopologySet', 
-                   'ns3::olsr::TopologySet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet const & ns3::OlsrState::GetTwoHopNeighbors() const [member function]
-    cls.add_method('GetTwoHopNeighbors', 
-                   'ns3::olsr::TwoHopNeighborSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet & ns3::OlsrState::GetTwoHopNeighbors() [member function]
-    cls.add_method('GetTwoHopNeighbors', 
-                   'ns3::olsr::TwoHopNeighborSet &', 
-                   [])
-    ## olsr-state.h: void ns3::OlsrState::InsertAssociation(ns3::olsr::Association const & tuple) [member function]
-    cls.add_method('InsertAssociation', 
-                   'void', 
-                   [param('ns3::olsr::Association const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
-    cls.add_method('InsertAssociationTuple', 
-                   'void', 
-                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
-    cls.add_method('InsertDuplicateTuple', 
-                   'void', 
-                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
-    cls.add_method('InsertIfaceAssocTuple', 
-                   'void', 
-                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
-    ## olsr-state.h: ns3::olsr::LinkTuple & ns3::OlsrState::InsertLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
-    cls.add_method('InsertLinkTuple', 
-                   'ns3::olsr::LinkTuple &', 
-                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
-    cls.add_method('InsertMprSelectorTuple', 
-                   'void', 
-                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertNeighborTuple(ns3::olsr::NeighborTuple const & tuple) [member function]
-    cls.add_method('InsertNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::NeighborTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
-    cls.add_method('InsertTopologyTuple', 
-                   'void', 
-                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
-    cls.add_method('InsertTwoHopNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
-    ## olsr-state.h: std::string ns3::OlsrState::PrintMprSelectorSet() const [member function]
-    cls.add_method('PrintMprSelectorSet', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: void ns3::OlsrState::SetMprSet(ns3::olsr::MprSet mprSet) [member function]
-    cls.add_method('SetMprSet', 
-                   'void', 
-                   [param('ns3::olsr::MprSet', 'mprSet')])
-    return
-
-def register_Ns3PyViz_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PyViz(ns3::PyViz const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PyViz() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample ns3::PyViz::GetLastPackets(uint32_t nodeId) const [member function]
-    cls.add_method('GetLastPackets', 
-                   'ns3::PyViz::LastPacketsSample', 
-                   [param('uint32_t', 'nodeId')], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::NodeStatistics,std::allocator<ns3::PyViz::NodeStatistics> > ns3::PyViz::GetNodesStatistics() const [member function]
-    cls.add_method('GetNodesStatistics', 
-                   'std::vector< ns3::PyViz::NodeStatistics >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::PacketDropSample,std::allocator<ns3::PyViz::PacketDropSample> > ns3::PyViz::GetPacketDropSamples() const [member function]
-    cls.add_method('GetPacketDropSamples', 
-                   'std::vector< ns3::PyViz::PacketDropSample >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<std::string, std::allocator<std::string> > ns3::PyViz::GetPauseMessages() const [member function]
-    cls.add_method('GetPauseMessages', 
-                   'std::vector< std::string >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::TransmissionSample,std::allocator<ns3::PyViz::TransmissionSample> > ns3::PyViz::GetTransmissionSamples() const [member function]
-    cls.add_method('GetTransmissionSamples', 
-                   'std::vector< ns3::PyViz::TransmissionSample >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: static void ns3::PyViz::LineClipping(double boundsX1, double boundsY1, double boundsX2, double boundsY2, double & lineX1, double & lineY1, double & lineX2, double & lineY2) [member function]
-    cls.add_method('LineClipping', 
-                   'void', 
-                   [param('double', 'boundsX1'), param('double', 'boundsY1'), param('double', 'boundsX2'), param('double', 'boundsY2'), param('double &', 'lineX1', direction=3), param('double &', 'lineY1', direction=3), param('double &', 'lineX2', direction=3), param('double &', 'lineY2', direction=3)], 
-                   is_static=True)
-    ## pyviz.h: static void ns3::PyViz::Pause(std::string const & message) [member function]
-    cls.add_method('Pause', 
-                   'void', 
-                   [param('std::string const &', 'message')], 
-                   is_static=True)
-    ## pyviz.h: void ns3::PyViz::RegisterCsmaLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterCsmaLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::RegisterDropTracePath(std::string const & tracePath) [member function]
-    cls.add_method('RegisterDropTracePath', 
-                   'void', 
-                   [param('std::string const &', 'tracePath')])
-    ## pyviz.h: void ns3::PyViz::RegisterPointToPointLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterPointToPointLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::RegisterWifiLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterWifiLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::SetNodesOfInterest(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > nodes) [member function]
-    cls.add_method('SetNodesOfInterest', 
-                   'void', 
-                   [param('std::set< unsigned int >', 'nodes')])
-    ## pyviz.h: void ns3::PyViz::SetPacketCaptureOptions(uint32_t nodeId, ns3::PyViz::PacketCaptureOptions options) [member function]
-    cls.add_method('SetPacketCaptureOptions', 
-                   'void', 
-                   [param('uint32_t', 'nodeId'), param('ns3::PyViz::PacketCaptureOptions', 'options')])
-    ## pyviz.h: void ns3::PyViz::SimulatorRunUntil(ns3::Time time) [member function]
-    cls.add_method('SimulatorRunUntil', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    return
-
-def register_Ns3PyVizLastPacketsSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample(ns3::PyViz::LastPacketsSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::LastPacketsSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastDroppedPackets [variable]
-    cls.add_instance_attribute('lastDroppedPackets', 'std::vector< ns3::PyViz::PacketSample >', is_const=False)
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastReceivedPackets [variable]
-    cls.add_instance_attribute('lastReceivedPackets', 'std::vector< ns3::PyViz::RxPacketSample >', is_const=False)
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastTransmittedPackets [variable]
-    cls.add_instance_attribute('lastTransmittedPackets', 'std::vector< ns3::PyViz::TxPacketSample >', is_const=False)
-    return
-
-def register_Ns3PyVizNetDeviceStatistics_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics(ns3::PyViz::NetDeviceStatistics const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::NetDeviceStatistics const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedBytes [variable]
-    cls.add_instance_attribute('receivedBytes', 'uint64_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedPackets [variable]
-    cls.add_instance_attribute('receivedPackets', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedBytes [variable]
-    cls.add_instance_attribute('transmittedBytes', 'uint64_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedPackets [variable]
-    cls.add_instance_attribute('transmittedPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3PyVizNodeStatistics_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics(ns3::PyViz::NodeStatistics const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::NodeStatistics const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::NodeStatistics::nodeId [variable]
-    cls.add_instance_attribute('nodeId', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NodeStatistics::statistics [variable]
-    cls.add_instance_attribute('statistics', 'std::vector< ns3::PyViz::NetDeviceStatistics >', is_const=False)
-    return
-
-def register_Ns3PyVizPacketCaptureOptions_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions(ns3::PyViz::PacketCaptureOptions const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketCaptureOptions const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::headers [variable]
-    cls.add_instance_attribute('headers', 'std::set< ns3::TypeId >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::mode [variable]
-    cls.add_instance_attribute('mode', 'ns3::PyViz::PacketCaptureMode', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::numLastPackets [variable]
-    cls.add_instance_attribute('numLastPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3PyVizPacketDropSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample(ns3::PyViz::PacketDropSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketDropSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketDropSample::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketDropSample::transmitter [variable]
-    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
-    return
-
-def register_Ns3PyVizPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample(ns3::PyViz::PacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketSample::device [variable]
-    cls.add_instance_attribute('device', 'ns3::Ptr< ns3::NetDevice >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketSample::packet [variable]
-    cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketSample::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3PyVizRxPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample(ns3::PyViz::RxPacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::RxPacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::RxPacketSample::from [variable]
-    cls.add_instance_attribute('from', 'ns3::Mac48Address', is_const=False)
-    return
-
-def register_Ns3PyVizTransmissionSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample(ns3::PyViz::TransmissionSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::TransmissionSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::TransmissionSample::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::channel [variable]
-    cls.add_instance_attribute('channel', 'ns3::Ptr< ns3::Channel >', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::receiver [variable]
-    cls.add_instance_attribute('receiver', 'ns3::Ptr< ns3::Node >', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::transmitter [variable]
-    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
-    return
-
-def register_Ns3PyVizTxPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample(ns3::PyViz::TxPacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::TxPacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::TxPacketSample::to [variable]
-    cls.add_instance_attribute('to', 'ns3::Mac48Address', is_const=False)
-    return
-
-def register_Ns3Reservation_methods(root_module, cls):
-    ## uan-mac-rc.h: ns3::Reservation::Reservation(ns3::Reservation const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Reservation const &', 'arg0')])
-    ## uan-mac-rc.h: ns3::Reservation::Reservation() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc.h: ns3::Reservation::Reservation(std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > & list, uint8_t frameNo, uint32_t maxPkts=0) [constructor]
-    cls.add_constructor([param('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > &', 'list'), param('uint8_t', 'frameNo'), param('uint32_t', 'maxPkts', default_value='0')])
-    ## uan-mac-rc.h: void ns3::Reservation::AddTimestamp(ns3::Time t) [member function]
-    cls.add_method('AddTimestamp', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetLength() const [member function]
-    cls.add_method('GetLength', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetNoFrames() const [member function]
-    cls.add_method('GetNoFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > const & ns3::Reservation::GetPktList() const [member function]
-    cls.add_method('GetPktList', 
-                   'std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > const &', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: ns3::Time ns3::Reservation::GetTimestamp(uint8_t n) const [member function]
-    cls.add_method('GetTimestamp', 
-                   'ns3::Time', 
-                   [param('uint8_t', 'n')], 
-                   is_const=True)
-    ## uan-mac-rc.h: void ns3::Reservation::IncrementRetry() [member function]
-    cls.add_method('IncrementRetry', 
-                   'void', 
-                   [])
-    ## uan-mac-rc.h: bool ns3::Reservation::IsTransmitted() const [member function]
-    cls.add_method('IsTransmitted', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: void ns3::Reservation::SetFrameNo(uint8_t fn) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'fn')])
-    ## uan-mac-rc.h: void ns3::Reservation::SetTransmitted(bool t=true) [member function]
-    cls.add_method('SetTransmitted', 
-                   'void', 
-                   [param('bool', 't', default_value='true')])
-    return
-
-def register_Ns3RvBatteryModelHelper_methods(root_module, cls):
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper(ns3::RvBatteryModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RvBatteryModelHelper const &', 'arg0')])
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper() [constructor]
-    cls.add_constructor([])
-    ## rv-battery-model-helper.h: void ns3::RvBatteryModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## rv-battery-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::RvBatteryModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3Tap_methods(root_module, cls):
-    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Tap const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Tap const &', 'arg0')])
-    ## uan-prop-model.h: ns3::Tap::Tap() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Time delay, std::complex<double> amp) [constructor]
-    cls.add_constructor([param('ns3::Time', 'delay'), param('std::complex< double >', 'amp')])
-    ## uan-prop-model.h: std::complex<double> ns3::Tap::GetAmp() const [member function]
-    cls.add_method('GetAmp', 
-                   'std::complex< double >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Time ns3::Tap::GetDelay() const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanAddress_methods(root_module, cls):
-    cls.add_binary_comparison_operator('!=')
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('<')
-    ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
-    ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
-    cls.add_constructor([])
-    ## uan-address.h: ns3::UanAddress::UanAddress(uint8_t addr) [constructor]
-    cls.add_constructor([param('uint8_t', 'addr')])
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::Allocate() [member function]
-    cls.add_method('Allocate', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_static=True)
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::ConvertFrom(ns3::Address const & address) [member function]
-    cls.add_method('ConvertFrom', 
-                   'ns3::UanAddress', 
-                   [param('ns3::Address const &', 'address')], 
-                   is_static=True)
-    ## uan-address.h: void ns3::UanAddress::CopyFrom(uint8_t const * pBuffer) [member function]
-    cls.add_method('CopyFrom', 
-                   'void', 
-                   [param('uint8_t const *', 'pBuffer')])
-    ## uan-address.h: void ns3::UanAddress::CopyTo(uint8_t * pBuffer) [member function]
-    cls.add_method('CopyTo', 
-                   'void', 
-                   [param('uint8_t *', 'pBuffer')])
-    ## uan-address.h: uint8_t ns3::UanAddress::GetAsInt() const [member function]
-    cls.add_method('GetAsInt', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::GetBroadcast() [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_static=True)
-    ## uan-address.h: static bool ns3::UanAddress::IsMatchingType(ns3::Address const & address) [member function]
-    cls.add_method('IsMatchingType', 
-                   'bool', 
-                   [param('ns3::Address const &', 'address')], 
-                   is_static=True)
-    return
-
-def register_Ns3UanHelper_methods(root_module, cls):
-    ## uan-helper.h: ns3::UanHelper::UanHelper(ns3::UanHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHelper const &', 'arg0')])
-    ## uan-helper.h: ns3::UanHelper::UanHelper() [constructor]
-    cls.add_constructor([])
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NetDeviceContainer d) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('ns3::NetDeviceContainer', 'd')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NodeContainer n) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('ns3::NodeContainer', 'n')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAsciiAll(std::ostream & os) [member function]
-    cls.add_method('EnableAsciiAll', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_static=True)
-    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c, ns3::Ptr<ns3::UanChannel> channel) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_const=True)
-    ## uan-helper.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanHelper::Install(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::UanChannel> channel) const [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_const=True)
-    ## uan-helper.h: void ns3::UanHelper::SetMac(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## uan-helper.h: void ns3::UanHelper::SetPhy(std::string phyType, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('std::string', 'phyType'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## uan-helper.h: void ns3::UanHelper::SetTransducer(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    return
-
-def register_Ns3UanModesList_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-tx-mode.h: ns3::UanModesList::UanModesList(ns3::UanModesList const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesList const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanModesList::UanModesList() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: void ns3::UanModesList::AppendMode(ns3::UanTxMode mode) [member function]
-    cls.add_method('AppendMode', 
-                   'void', 
-                   [param('ns3::UanTxMode', 'mode')])
-    ## uan-tx-mode.h: void ns3::UanModesList::DeleteMode(uint32_t num) [member function]
-    cls.add_method('DeleteMode', 
-                   'void', 
-                   [param('uint32_t', 'num')])
-    ## uan-tx-mode.h: uint32_t ns3::UanModesList::GetNModes() const [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPacketArrival_methods(root_module, cls):
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::UanPacketArrival const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPacketArrival const &', 'arg0')])
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp, ns3::Time arrTime) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp'), param('ns3::Time', 'arrTime')])
-    ## uan-transducer.h: ns3::Time ns3::UanPacketArrival::GetArrivalTime() const [member function]
-    cls.add_method('GetArrivalTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::Ptr<ns3::Packet> ns3::UanPacketArrival::GetPacket() const [member function]
-    cls.add_method('GetPacket', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::UanPdp ns3::UanPacketArrival::GetPdp() const [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: double ns3::UanPacketArrival::GetRxPowerDb() const [member function]
-    cls.add_method('GetRxPowerDb', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::UanTxMode const & ns3::UanPacketArrival::GetTxMode() const [member function]
-    cls.add_method('GetTxMode', 
-                   'ns3::UanTxMode const &', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPdp_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(ns3::UanPdp const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPdp const &', 'arg0')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<ns3::Tap, std::allocator<ns3::Tap> > taps, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< ns3::Tap >', 'taps'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<std::complex<double>,std::allocator<std::complex<double> > > arrivals, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< std::complex< double > >', 'arrivals'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<double, std::allocator<double> > arrivals, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< double >', 'arrivals'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: static ns3::UanPdp ns3::UanPdp::CreateImpulsePdp() [member function]
-    cls.add_method('CreateImpulsePdp', 
-                   'ns3::UanPdp', 
-                   [], 
-                   is_static=True)
-    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetBegin() const [member function]
-    cls.add_method('GetBegin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetEnd() const [member function]
-    cls.add_method('GetEnd', 
-                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: uint32_t ns3::UanPdp::GetNTaps() const [member function]
-    cls.add_method('GetNTaps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Time ns3::UanPdp::GetResolution() const [member function]
-    cls.add_method('GetResolution', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Tap const & ns3::UanPdp::GetTap(uint32_t i) const [member function]
-    cls.add_method('GetTap', 
-                   'ns3::Tap const &', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## uan-prop-model.h: void ns3::UanPdp::SetNTaps(uint32_t nTaps) [member function]
-    cls.add_method('SetNTaps', 
-                   'void', 
-                   [param('uint32_t', 'nTaps')])
-    ## uan-prop-model.h: void ns3::UanPdp::SetResolution(ns3::Time resolution) [member function]
-    cls.add_method('SetResolution', 
-                   'void', 
-                   [param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: void ns3::UanPdp::SetTap(std::complex<double> arrival, uint32_t index) [member function]
-    cls.add_method('SetTap', 
-                   'void', 
-                   [param('std::complex< double >', 'arrival'), param('uint32_t', 'index')])
-    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsC(ns3::Time begin, ns3::Time end) const [member function]
-    cls.add_method('SumTapsC', 
-                   'std::complex< double >', 
-                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
-                   is_const=True)
-    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsFromMaxC(ns3::Time delay, ns3::Time duration) const [member function]
-    cls.add_method('SumTapsFromMaxC', 
-                   'std::complex< double >', 
-                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
-                   is_const=True)
-    ## uan-prop-model.h: double ns3::UanPdp::SumTapsFromMaxNc(ns3::Time delay, ns3::Time duration) const [member function]
-    cls.add_method('SumTapsFromMaxNc', 
-                   'double', 
-                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
-                   is_const=True)
-    ## uan-prop-model.h: double ns3::UanPdp::SumTapsNc(ns3::Time begin, ns3::Time end) const [member function]
-    cls.add_method('SumTapsNc', 
-                   'double', 
-                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPhyListener_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener(ns3::UanPhyListener const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyListener const &', 'arg0')])
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaEnd() [member function]
-    cls.add_method('NotifyCcaEnd', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaStart() [member function]
-    cls.add_method('NotifyCcaStart', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxStart() [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanTxMode_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode(ns3::UanTxMode const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTxMode const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetBandwidthHz() const [member function]
-    cls.add_method('GetBandwidthHz', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetCenterFreqHz() const [member function]
-    cls.add_method('GetCenterFreqHz', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetConstellationSize() const [member function]
-    cls.add_method('GetConstellationSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetDataRateBps() const [member function]
-    cls.add_method('GetDataRateBps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType ns3::UanTxMode::GetModType() const [member function]
-    cls.add_method('GetModType', 
-                   'ns3::UanTxMode::ModulationType', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: std::string ns3::UanTxMode::GetName() const [member function]
-    cls.add_method('GetName', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetPhyRateSps() const [member function]
-    cls.add_method('GetPhyRateSps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanTxModeFactory_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory(ns3::UanTxModeFactory const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTxModeFactory const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::CreateMode(ns3::UanTxMode::ModulationType type, uint32_t dataRateBps, uint32_t phyRateSps, uint32_t cfHz, uint32_t bwHz, uint32_t constSize, std::string name) [member function]
-    cls.add_method('CreateMode', 
-                   'ns3::UanTxMode', 
-                   [param('ns3::UanTxMode::ModulationType', 'type'), param('uint32_t', 'dataRateBps'), param('uint32_t', 'phyRateSps'), param('uint32_t', 'cfHz'), param('uint32_t', 'bwHz'), param('uint32_t', 'constSize'), param('std::string', 'name')], 
-                   is_static=True)
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(std::string name) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('std::string', 'name')], 
-                   is_static=True)
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(uint32_t uid) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'uid')], 
-                   is_static=True)
-    return
-
-def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, cls):
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener(ns3::WifiRadioEnergyModelPhyListener const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModelPhyListener const &', 'arg0')])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyMaybeCcaBusyStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(ns3::Time duration) [member function]
-    cls.add_method('NotifySwitchingStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetChangeStateCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    return
-
-def register_Ns3AcousticModemEnergyModelHelper_methods(root_module, cls):
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper(ns3::AcousticModemEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AcousticModemEnergyModelHelper const &', 'arg0')])
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## acoustic-modem-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::AcousticModemEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
-    cls.add_constructor([])
-    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DsdvHelper_methods(root_module, cls):
-    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper(ns3::DsdvHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DsdvHelper const &', 'arg0')])
-    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper() [constructor]
-    cls.add_constructor([])
-    ## dsdv-helper.h: ns3::DsdvHelper * ns3::DsdvHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::DsdvHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::DsdvHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-helper.h: void ns3::DsdvHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
-    return
-
-def register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, cls):
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper(ns3::Ipv4GlobalRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4GlobalRoutingHelper const &', 'arg0')])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper * ns3::Ipv4GlobalRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4GlobalRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4GlobalRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables() [member function]
-    cls.add_method('PopulateRoutingTables', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables() [member function]
-    cls.add_method('RecomputeRoutingTables', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3Ipv4ListRoutingHelper_methods(root_module, cls):
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper(ns3::Ipv4ListRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4ListRoutingHelper const &', 'arg0')])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper * ns3::Ipv4ListRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4ListRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing-helper.h: void ns3::Ipv4ListRoutingHelper::Add(ns3::Ipv4RoutingHelper const & routing, int16_t priority) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ipv4RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
-    ## ipv4-list-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3Ipv6ListRoutingHelper_methods(root_module, cls):
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper(ns3::Ipv6ListRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6ListRoutingHelper const &', 'arg0')])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper * ns3::Ipv6ListRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv6ListRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing-helper.h: void ns3::Ipv6ListRoutingHelper::Add(ns3::Ipv6RoutingHelper const & routing, int16_t priority) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ipv6RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
-    ## ipv6-list-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3LteMacHeader_methods(root_module, cls):
-    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader() [constructor]
-    cls.add_constructor([])
-    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader(ns3::LteMacHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteMacHeader const &', 'arg0')])
-    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetDestination() const [member function]
-    cls.add_method('GetDestination', 
-                   'ns3::Mac48Address', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-header.h: ns3::TypeId ns3::LteMacHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetSource() const [member function]
-    cls.add_method('GetSource', 
-                   'ns3::Mac48Address', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-header.h: static ns3::TypeId ns3::LteMacHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::SetDestination(ns3::Mac48Address destination) [member function]
-    cls.add_method('SetDestination', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'destination')])
-    ## lte-mac-header.h: void ns3::LteMacHeader::SetSource(ns3::Mac48Address source) [member function]
-    cls.add_method('SetSource', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'source')])
-    return
-
-def register_Ns3PacketScheduler_methods(root_module, cls):
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::PacketScheduler const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketScheduler const &', 'arg0')])
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler() [constructor]
-    cls.add_constructor([])
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## packet-scheduler.h: void ns3::PacketScheduler::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## packet-scheduler.h: void ns3::PacketScheduler::DoRunPacketScheduler() [member function]
-    cls.add_method('DoRunPacketScheduler', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## packet-scheduler.h: ns3::Ptr<ns3::EnbNetDevice> ns3::PacketScheduler::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::EnbNetDevice >', 
-                   [])
-    ## packet-scheduler.h: ns3::Ptr<ns3::MacEntity> ns3::PacketScheduler::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::MacEntity >', 
-                   [])
-    ## packet-scheduler.h: static ns3::TypeId ns3::PacketScheduler::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## packet-scheduler.h: void ns3::PacketScheduler::RunPacketScheduler() [member function]
-    cls.add_method('RunPacketScheduler', 
-                   'void', 
-                   [])
-    ## packet-scheduler.h: void ns3::PacketScheduler::SetDevice(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## packet-scheduler.h: void ns3::PacketScheduler::SetMacEntity(ns3::Ptr<ns3::MacEntity> mac) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MacEntity >', 'mac')])
-    return
-
-def register_Ns3RadioBearerInstance_methods(root_module, cls):
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance(ns3::RadioBearerInstance const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RadioBearerInstance const &', 'arg0')])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance() [constructor]
-    cls.add_constructor([])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue(uint32_t availableByte) [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [param('uint32_t', 'availableByte')])
-    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection ns3::RadioBearerInstance::GetBearerDirection() const [member function]
-    cls.add_method('GetBearerDirection', 
-                   'ns3::RadioBearerInstance::BearerDirection', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType ns3::RadioBearerInstance::GetBearerType() const [member function]
-    cls.add_method('GetBearerType', 
-                   'ns3::RadioBearerInstance::BearerType', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::IpcsClassifierRecord * ns3::RadioBearerInstance::GetIpcsClassifierRecord() [member function]
-    cls.add_method('GetIpcsClassifierRecord', 
-                   'ns3::IpcsClassifierRecord *', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::BearerQosParameters> ns3::RadioBearerInstance::GetQosParameters() [member function]
-    cls.add_method('GetQosParameters', 
-                   'ns3::Ptr< ns3::BearerQosParameters >', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::LteMacQueue> ns3::RadioBearerInstance::GetQueue() const [member function]
-    cls.add_method('GetQueue', 
-                   'ns3::Ptr< ns3::LteMacQueue >', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::RlcEntity> ns3::RadioBearerInstance::GetRlcEntity() [member function]
-    cls.add_method('GetRlcEntity', 
-                   'ns3::Ptr< ns3::RlcEntity >', 
-                   [])
-    ## radio-bearer-instance.h: static ns3::TypeId ns3::RadioBearerInstance::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::HasPackets() const [member function]
-    cls.add_method('HasPackets', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerDirection(ns3::RadioBearerInstance::BearerDirection direction) [member function]
-    cls.add_method('SetBearerDirection', 
-                   'void', 
-                   [param('ns3::RadioBearerInstance::BearerDirection', 'direction')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerType(ns3::RadioBearerInstance::BearerType type) [member function]
-    cls.add_method('SetBearerType', 
-                   'void', 
-                   [param('ns3::RadioBearerInstance::BearerType', 'type')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetIpcsClassifierRecord(ns3::IpcsClassifierRecord * c) [member function]
-    cls.add_method('SetIpcsClassifierRecord', 
-                   'void', 
-                   [param('ns3::IpcsClassifierRecord *', 'c')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetQosParameters(ns3::Ptr<ns3::BearerQosParameters> qosParameters) [member function]
-    cls.add_method('SetQosParameters', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::BearerQosParameters >', 'qosParameters')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetRlcEntity(ns3::Ptr<ns3::RlcEntity> rlc) [member function]
-    cls.add_method('SetRlcEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RlcEntity >', 'rlc')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RlcEntity_methods(root_module, cls):
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::RlcEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RlcEntity const &', 'arg0')])
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity() [constructor]
-    cls.add_constructor([])
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## rlc-entity.h: ns3::Ptr<ns3::Packet> ns3::RlcEntity::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## rlc-entity.h: void ns3::RlcEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rlc-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::RlcEntity::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## rlc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RlcEntity::GetRadioBearer() [member function]
-    cls.add_method('GetRadioBearer', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [])
-    ## rlc-entity.h: static ns3::TypeId ns3::RlcEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rlc-entity.h: void ns3::RlcEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## rlc-entity.h: void ns3::RlcEntity::SetRadioBearer(ns3::Ptr<ns3::RadioBearerInstance> b) [member function]
-    cls.add_method('SetRadioBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'b')])
-    return
-
-def register_Ns3RrcEntity_methods(root_module, cls):
-    ## rrc-entity.h: ns3::RrcEntity::RrcEntity(ns3::RrcEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RrcEntity const &', 'arg0')])
-    ## rrc-entity.h: ns3::RrcEntity::RrcEntity() [constructor]
-    cls.add_constructor([])
-    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddDownlinkGbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddDownlinkNgbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddUplinkGbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddUplinkNgbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::Classify(ns3::Ptr<ns3::Packet> p) const [member function]
-    cls.add_method('Classify', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   is_const=True)
-    ## rrc-entity.h: void ns3::RrcEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::GetDefaultBearer() [member function]
-    cls.add_method('GetDefaultBearer', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [])
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkGbrBearers() const [member function]
-    cls.add_method('GetDownlinkGbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkNgbrBearers() const [member function]
-    cls.add_method('GetDownlinkNgbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: static ns3::TypeId ns3::RrcEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkGbrBearers() const [member function]
-    cls.add_method('GetUplinkGbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkNgbrBearers() const [member function]
-    cls.add_method('GetUplinkNgbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SimplePacketScheduler_methods(root_module, cls):
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::SimplePacketScheduler const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SimplePacketScheduler const &', 'arg0')])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler() [constructor]
-    cls.add_constructor([])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## simple-packet-scheduler.h: void ns3::SimplePacketScheduler::DoRunPacketScheduler() [member function]
-    cls.add_method('DoRunPacketScheduler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## simple-packet-scheduler.h: static ns3::TypeId ns3::SimplePacketScheduler::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanHeaderCommon_methods(root_module, cls):
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanHeaderCommon const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderCommon const &', 'arg0')])
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon() [constructor]
-    cls.add_constructor([])
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanAddress const src, ns3::UanAddress const dest, uint8_t type) [constructor]
-    cls.add_constructor([param('ns3::UanAddress const', 'src'), param('ns3::UanAddress const', 'dest'), param('uint8_t', 'type')])
-    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: ns3::TypeId ns3::UanHeaderCommon::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetSrc() const [member function]
-    cls.add_method('GetSrc', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: uint8_t ns3::UanHeaderCommon::GetType() const [member function]
-    cls.add_method('GetType', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: static ns3::TypeId ns3::UanHeaderCommon::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetDest(ns3::UanAddress dest) [member function]
-    cls.add_method('SetDest', 
-                   'void', 
-                   [param('ns3::UanAddress', 'dest')])
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetSrc(ns3::UanAddress src) [member function]
-    cls.add_method('SetSrc', 
-                   'void', 
-                   [param('ns3::UanAddress', 'src')])
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetType(uint8_t type) [member function]
-    cls.add_method('SetType', 
-                   'void', 
-                   [param('uint8_t', 'type')])
-    return
-
-def register_Ns3UanHeaderRcAck_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck(ns3::UanHeaderRcAck const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcAck const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::AddNackedFrame(uint8_t frame) [member function]
-    cls.add_method('AddNackedFrame', 
-                   'void', 
-                   [param('uint8_t', 'frame')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcAck::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: std::set<unsigned char, std::less<unsigned char>, std::allocator<unsigned char> > const & ns3::UanHeaderRcAck::GetNackedFrames() const [member function]
-    cls.add_method('GetNackedFrames', 
-                   'std::set< unsigned char > const &', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetNoNacks() const [member function]
-    cls.add_method('GetNoNacks', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcAck::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::SetFrameNo(uint8_t frameNo) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNo')])
-    return
-
-def register_Ns3UanHeaderRcCts_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(ns3::UanHeaderRcCts const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcCts const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(uint8_t frameNo, uint8_t retryNo, ns3::Time rtsTs, ns3::Time delay, ns3::UanAddress addr) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('ns3::Time', 'rtsTs'), param('ns3::Time', 'delay'), param('ns3::UanAddress', 'addr')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: ns3::UanAddress ns3::UanHeaderRcCts::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetDelayToTx() const [member function]
-    cls.add_method('GetDelayToTx', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCts::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetRtsTimeStamp() const [member function]
-    cls.add_method('GetRtsTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCts::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetDelayToTx(ns3::Time delay) [member function]
-    cls.add_method('SetDelayToTx', 
-                   'void', 
-                   [param('ns3::Time', 'delay')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetFrameNo(uint8_t frameNo) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNo')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRetryNo(uint8_t no) [member function]
-    cls.add_method('SetRetryNo', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRtsTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetRtsTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    return
-
-def register_Ns3UanHeaderRcCtsGlobal_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::UanHeaderRcCtsGlobal const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcCtsGlobal const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::Time wt, ns3::Time ts, uint16_t rate, uint16_t retryRate) [constructor]
-    cls.add_constructor([param('ns3::Time', 'wt'), param('ns3::Time', 'ts'), param('uint16_t', 'rate'), param('uint16_t', 'retryRate')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRateNum() const [member function]
-    cls.add_method('GetRateNum', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRetryRate() const [member function]
-    cls.add_method('GetRetryRate', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp() const [member function]
-    cls.add_method('GetTxTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetWindowTime() const [member function]
-    cls.add_method('GetWindowTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRateNum(uint16_t rate) [member function]
-    cls.add_method('SetRateNum', 
-                   'void', 
-                   [param('uint16_t', 'rate')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRetryRate(uint16_t rate) [member function]
-    cls.add_method('SetRetryRate', 
-                   'void', 
-                   [param('uint16_t', 'rate')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetTxTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetWindowTime(ns3::Time t) [member function]
-    cls.add_method('SetWindowTime', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    return
-
-def register_Ns3UanHeaderRcData_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(ns3::UanHeaderRcData const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcData const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(uint8_t frameNum, ns3::Time propDelay) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNum'), param('ns3::Time', 'propDelay')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcData::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcData::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcData::GetPropDelay() const [member function]
-    cls.add_method('GetPropDelay', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcData::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetFrameNo(uint8_t frameNum) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNum')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetPropDelay(ns3::Time propDelay) [member function]
-    cls.add_method('SetPropDelay', 
-                   'void', 
-                   [param('ns3::Time', 'propDelay')])
-    return
-
-def register_Ns3UanHeaderRcRts_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(ns3::UanHeaderRcRts const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcRts const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length, ns3::Time ts) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('uint8_t', 'noFrames'), param('uint16_t', 'length'), param('ns3::Time', 'ts')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcRts::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcRts::GetLength() const [member function]
-    cls.add_method('GetLength', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetNoFrames() const [member function]
-    cls.add_method('GetNoFrames', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcRts::GetTimeStamp() const [member function]
-    cls.add_method('GetTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcRts::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetFrameNo(uint8_t fno) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'fno')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetLength(uint16_t length) [member function]
-    cls.add_method('SetLength', 
-                   'void', 
-                   [param('uint16_t', 'length')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetNoFrames(uint8_t no) [member function]
-    cls.add_method('SetNoFrames', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetRetryNo(uint8_t no) [member function]
-    cls.add_method('SetRetryNo', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    return
-
-def register_Ns3UanMac_methods(root_module, cls):
-    ## uan-mac.h: ns3::UanMac::UanMac() [constructor]
-    cls.add_constructor([])
-    ## uan-mac.h: ns3::UanMac::UanMac(ns3::UanMac const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMac const &', 'arg0')])
-    ## uan-mac.h: void ns3::UanMac::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: bool ns3::UanMac::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: ns3::Address ns3::UanMac::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: ns3::Address ns3::UanMac::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanMacAloha_methods(root_module, cls):
-    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha(ns3::UanMacAloha const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacAloha const &', 'arg0')])
-    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: bool ns3::UanMacAloha::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-aloha.h: static ns3::TypeId ns3::UanMacAloha::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacCw_methods(root_module, cls):
-    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw(ns3::UanMacCw const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacCw const &', 'arg0')])
-    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-cw.h: void ns3::UanMacCw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: bool ns3::UanMacCw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-cw.h: uint32_t ns3::UanMacCw::GetCw() [member function]
-    cls.add_method('GetCw', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Time ns3::UanMacCw::GetSlotTime() [member function]
-    cls.add_method('GetSlotTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: static ns3::TypeId ns3::UanMacCw::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaEnd() [member function]
-    cls.add_method('NotifyCcaEnd', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaStart() [member function]
-    cls.add_method('NotifyCcaStart', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxStart() [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetCw(uint32_t cw) [member function]
-    cls.add_method('SetCw', 
-                   'void', 
-                   [param('uint32_t', 'cw')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetSlotTime(ns3::Time duration) [member function]
-    cls.add_method('SetSlotTime', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacRc_methods(root_module, cls):
-    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc(ns3::UanMacRc const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacRc const &', 'arg0')])
-    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc.h: void ns3::UanMacRc::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: bool ns3::UanMacRc::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-rc.h: static ns3::TypeId ns3::UanMacRc::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacRcGw_methods(root_module, cls):
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw(ns3::UanMacRcGw const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacRcGw const &', 'arg0')])
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: bool ns3::UanMacRcGw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-rc-gw.h: static ns3::TypeId ns3::UanMacRcGw::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanNoiseModel_methods(root_module, cls):
-    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel() [constructor]
-    cls.add_constructor([])
-    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel(ns3::UanNoiseModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNoiseModel const &', 'arg0')])
-    ## uan-noise-model.h: void ns3::UanNoiseModel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-noise-model.h: void ns3::UanNoiseModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-noise-model.h: double ns3::UanNoiseModel::GetNoiseDbHz(double fKhz) const [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    return
-
-def register_Ns3UanNoiseModelDefault_methods(root_module, cls):
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault(ns3::UanNoiseModelDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNoiseModelDefault const &', 'arg0')])
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-noise-model-default.h: double ns3::UanNoiseModelDefault::GetNoiseDbHz(double fKhz) const [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')], 
-                   is_const=True, is_virtual=True)
-    ## uan-noise-model-default.h: static ns3::TypeId ns3::UanNoiseModelDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhy_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhy::UanPhy() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhy::UanPhy(ns3::UanPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhy const &', 'arg0')])
-    ## uan-phy.h: void ns3::UanPhy::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhy::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::UanTxMode ns3::UanPhy::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: uint32_t ns3::UanPhy::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::Packet> ns3::UanPhy::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhy::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanPhyCalcSinr_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr(ns3::UanPhyCalcSinr const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinr const &', 'arg0')])
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyCalcSinr::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::DbToKp(double db) const [member function]
-    cls.add_method('DbToKp', 
-                   'double', 
-                   [param('double', 'db')], 
-                   is_const=True)
-    ## uan-phy.h: void ns3::UanPhyCalcSinr::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::KpToDb(double kp) const [member function]
-    cls.add_method('KpToDb', 
-                   'double', 
-                   [param('double', 'kp')], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPhyCalcSinrDefault_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault(ns3::UanPhyCalcSinrDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrDefault const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrDefault::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyCalcSinrDual_methods(root_module, cls):
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual(ns3::UanPhyCalcSinrDual const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrDual const &', 'arg0')])
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-dual.h: double ns3::UanPhyCalcSinrDual::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyCalcSinrDual::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk(ns3::UanPhyCalcSinrFhFsk const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrFhFsk const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrFhFsk::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrFhFsk::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyDual_methods(root_module, cls):
-    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual(ns3::UanPhyDual const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyDual const &', 'arg0')])
-    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy1() const [member function]
-    cls.add_method('GetCcaThresholdPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy2() const [member function]
-    cls.add_method('GetCcaThresholdPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyDual::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyDual::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::UanTxMode ns3::UanPhyDual::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy1() const [member function]
-    cls.add_method('GetModesPhy1', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy2() const [member function]
-    cls.add_method('GetModesPhy2', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: uint32_t ns3::UanPhyDual::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy1() const [member function]
-    cls.add_method('GetPerModelPhy1', 
-                   'ns3::Ptr< ns3::UanPhyPer >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy2() const [member function]
-    cls.add_method('GetPerModelPhy2', 
-                   'ns3::Ptr< ns3::UanPhyPer >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy1PacketRx() const [member function]
-    cls.add_method('GetPhy1PacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy2PacketRx() const [member function]
-    cls.add_method('GetPhy2PacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy1() const [member function]
-    cls.add_method('GetRxGainDbPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy2() const [member function]
-    cls.add_method('GetRxGainDbPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy1() const [member function]
-    cls.add_method('GetSinrModelPhy1', 
-                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy2() const [member function]
-    cls.add_method('GetSinrModelPhy2', 
-                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyDual::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy1() const [member function]
-    cls.add_method('GetTxPowerDbPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy2() const [member function]
-    cls.add_method('GetTxPowerDbPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyDual::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Idle() [member function]
-    cls.add_method('IsPhy1Idle', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Rx() [member function]
-    cls.add_method('IsPhy1Rx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Tx() [member function]
-    cls.add_method('IsPhy1Tx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Idle() [member function]
-    cls.add_method('IsPhy2Idle', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Rx() [member function]
-    cls.add_method('IsPhy2Rx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Tx() [member function]
-    cls.add_method('IsPhy2Tx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy1(double thresh) [member function]
-    cls.add_method('SetCcaThresholdPhy1', 
-                   'void', 
-                   [param('double', 'thresh')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy2(double thresh) [member function]
-    cls.add_method('SetCcaThresholdPhy2', 
-                   'void', 
-                   [param('double', 'thresh')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy1(ns3::UanModesList modes) [member function]
-    cls.add_method('SetModesPhy1', 
-                   'void', 
-                   [param('ns3::UanModesList', 'modes')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy2(ns3::UanModesList modes) [member function]
-    cls.add_method('SetModesPhy2', 
-                   'void', 
-                   [param('ns3::UanModesList', 'modes')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy1(ns3::Ptr<ns3::UanPhyPer> per) [member function]
-    cls.add_method('SetPerModelPhy1', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy2(ns3::Ptr<ns3::UanPhyPer> per) [member function]
-    cls.add_method('SetPerModelPhy2', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy1(double gain) [member function]
-    cls.add_method('SetRxGainDbPhy1', 
-                   'void', 
-                   [param('double', 'gain')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy2(double gain) [member function]
-    cls.add_method('SetRxGainDbPhy2', 
-                   'void', 
-                   [param('double', 'gain')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy1(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
-    cls.add_method('SetSinrModelPhy1', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy2(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
-    cls.add_method('SetSinrModelPhy2', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy1(double arg0) [member function]
-    cls.add_method('SetTxPowerDbPhy1', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy2(double arg0) [member function]
-    cls.add_method('SetTxPowerDbPhy2', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanPhyGen_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen(ns3::UanPhyGen const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyGen const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: void ns3::UanPhyGen::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyGen::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::UanModesList ns3::UanPhyGen::GetDefaultModes() [member function]
-    cls.add_method('GetDefaultModes', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyGen::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::UanTxMode ns3::UanPhyGen::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: uint32_t ns3::UanPhyGen::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::Packet> ns3::UanPhyGen::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyGen::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyGen::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanPhyPer_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer(ns3::UanPhyPer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPer const &', 'arg0')])
-    ## uan-phy.h: double ns3::UanPhyPer::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyPer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyPer::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    return
-
-def register_Ns3UanPhyPerGenDefault_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault(ns3::UanPhyPerGenDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPerGenDefault const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyPerGenDefault::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerGenDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyPerUmodem_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem(ns3::UanPhyPerUmodem const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPerUmodem const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyPerUmodem::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerUmodem::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPropModel_methods(root_module, cls):
-    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel(ns3::UanPropModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModel const &', 'arg0')])
-    ## uan-prop-model.h: void ns3::UanPropModel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-prop-model.h: void ns3::UanPropModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-prop-model.h: ns3::Time ns3::UanPropModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-prop-model.h: double ns3::UanPropModel::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode txMode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-prop-model.h: ns3::UanPdp ns3::UanPropModel::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanPropModelIdeal_methods(root_module, cls):
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal(ns3::UanPropModelIdeal const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModelIdeal const &', 'arg0')])
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model-ideal.h: ns3::Time ns3::UanPropModelIdeal::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: double ns3::UanPropModelIdeal::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: ns3::UanPdp ns3::UanPropModelIdeal::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: static ns3::TypeId ns3::UanPropModelIdeal::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPropModelThorp_methods(root_module, cls):
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp(ns3::UanPropModelThorp const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModelThorp const &', 'arg0')])
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model-thorp.h: ns3::Time ns3::UanPropModelThorp::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: double ns3::UanPropModelThorp::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: ns3::UanPdp ns3::UanPropModelThorp::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: static ns3::TypeId ns3::UanPropModelThorp::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanTransducer_methods(root_module, cls):
-    ## uan-transducer.h: ns3::UanTransducer::UanTransducer() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer.h: ns3::UanTransducer::UanTransducer(ns3::UanTransducer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTransducer const &', 'arg0')])
-    ## uan-transducer.h: void ns3::UanTransducer::AddPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AddPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducer::GetArrivalList() const [member function]
-    cls.add_method('GetArrivalList', 
-                   'std::list< ns3::UanPacketArrival > const &', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducer::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducer::GetPhyList() const [member function]
-    cls.add_method('GetPhyList', 
-                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: ns3::UanTransducer::State ns3::UanTransducer::GetState() const [member function]
-    cls.add_method('GetState', 
-                   'ns3::UanTransducer::State', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: bool ns3::UanTransducer::IsRx() const [member function]
-    cls.add_method('IsRx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: bool ns3::UanTransducer::IsTx() const [member function]
-    cls.add_method('IsTx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('Transmit', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanTransducerHd_methods(root_module, cls):
-    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd(ns3::UanTransducerHd const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTransducerHd const &', 'arg0')])
-    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::AddPhy(ns3::Ptr<ns3::UanPhy> arg0) [member function]
-    cls.add_method('AddPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'arg0')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducerHd::GetArrivalList() const [member function]
-    cls.add_method('GetArrivalList', 
-                   'std::list< ns3::UanPacketArrival > const &', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducerHd::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducerHd::GetPhyList() const [member function]
-    cls.add_method('GetPhyList', 
-                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: ns3::UanTransducer::State ns3::UanTransducerHd::GetState() const [member function]
-    cls.add_method('GetState', 
-                   'ns3::UanTransducer::State', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: static ns3::TypeId ns3::UanTransducerHd::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsRx() const [member function]
-    cls.add_method('IsRx', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsTx() const [member function]
-    cls.add_method('IsTx', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('Transmit', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UeManager_methods(root_module, cls):
-    ## ue-manager.h: ns3::UeManager::UeManager(ns3::UeManager const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeManager const &', 'arg0')])
-    ## ue-manager.h: ns3::UeManager::UeManager() [constructor]
-    cls.add_constructor([])
-    ## ue-manager.h: void ns3::UeManager::CreateUeRecord(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('CreateUeRecord', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
-    cls.add_method('DeleteUeRecord', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
-    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Mac48Address const & macAddress) [member function]
-    cls.add_method('DeleteUeRecord', 
-                   'void', 
-                   [param('ns3::Mac48Address const &', 'macAddress')])
-    ## ue-manager.h: uint32_t ns3::UeManager::GetNRegisteredUes() const [member function]
-    cls.add_method('GetNRegisteredUes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
-    cls.add_method('GetUeRecord', 
-                   'ns3::Ptr< ns3::UeRecord >', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
-    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Mac48Address const macAddress) [member function]
-    cls.add_method('GetUeRecord', 
-                   'ns3::Ptr< ns3::UeRecord >', 
-                   [param('ns3::Mac48Address const', 'macAddress')])
-    ## ue-manager.h: std::vector<ns3::Ptr<ns3::UeRecord>,std::allocator<ns3::Ptr<ns3::UeRecord> > > * ns3::UeManager::GetUeRecords() [member function]
-    cls.add_method('GetUeRecords', 
-                   'std::vector< ns3::Ptr< ns3::UeRecord > > *', 
-                   [])
-    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Ptr<ns3::UeNetDevice> ue) const [member function]
-    cls.add_method('IsRegistered', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')], 
-                   is_const=True)
-    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Mac48Address const & macAddress) const [member function]
-    cls.add_method('IsRegistered', 
-                   'bool', 
-                   [param('ns3::Mac48Address const &', 'macAddress')], 
-                   is_const=True)
-    return
-
-def register_Ns3UeRecord_methods(root_module, cls):
-    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::UeRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeRecord const &', 'arg0')])
-    ## ue-record.h: ns3::UeRecord::UeRecord() [constructor]
-    cls.add_constructor([])
-    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::Ptr<ns3::NetDevice> ue, ns3::Ptr<ns3::NetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'ue'), param('ns3::Ptr< ns3::NetDevice >', 'enb')])
-    ## ue-record.h: std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > ns3::UeRecord::GetCqiFeedbacks() [member function]
-    cls.add_method('GetCqiFeedbacks', 
-                   'std::vector< ns3::UeRecord::CqiFeedback >', 
-                   [])
-    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetEnb() [member function]
-    cls.add_method('GetEnb', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [])
-    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetUe() [member function]
-    cls.add_method('GetUe', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [])
-    ## ue-record.h: void ns3::UeRecord::SetCqiFeedbacks(std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > cqiFeedbacks) [member function]
-    cls.add_method('SetCqiFeedbacks', 
-                   'void', 
-                   [param('std::vector< ns3::UeRecord::CqiFeedback >', 'cqiFeedbacks')])
-    ## ue-record.h: void ns3::UeRecord::SetEnb(ns3::Ptr<ns3::NetDevice> enb) [member function]
-    cls.add_method('SetEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'enb')])
-    ## ue-record.h: void ns3::UeRecord::SetUe(ns3::Ptr<ns3::NetDevice> ue) [member function]
-    cls.add_method('SetUe', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'ue')])
-    return
-
-def register_Ns3UeRecordCqiFeedback_methods(root_module, cls):
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback() [constructor]
-    cls.add_constructor([])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback(ns3::UeRecord::CqiFeedback const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeRecord::CqiFeedback const &', 'arg0')])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_cqi [variable]
-    cls.add_instance_attribute('m_cqi', 'int', is_const=False)
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_subChannelId [variable]
-    cls.add_instance_attribute('m_subChannelId', 'int', is_const=False)
-    return
-
-def register_Ns3AmcModule_methods(root_module, cls):
-    ## amc-module.h: ns3::AmcModule::AmcModule(ns3::AmcModule const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AmcModule const &', 'arg0')])
-    ## amc-module.h: ns3::AmcModule::AmcModule() [constructor]
-    cls.add_constructor([])
-    ## amc-module.h: std::vector<int, std::allocator<int> > ns3::AmcModule::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'std::vector< int >', 
-                   [param('std::vector< double >', 'sinr')])
-    ## amc-module.h: int ns3::AmcModule::GetMcsFromCqi(int cqi) [member function]
-    cls.add_method('GetMcsFromCqi', 
-                   'int', 
-                   [param('int', 'cqi')])
-    ## amc-module.h: double ns3::AmcModule::GetSpectralEfficiencyFromCqi(int cqi) [member function]
-    cls.add_method('GetSpectralEfficiencyFromCqi', 
-                   'double', 
-                   [param('int', 'cqi')])
-    ## amc-module.h: int ns3::AmcModule::GetTbSizeFromMcs(int mcs) [member function]
-    cls.add_method('GetTbSizeFromMcs', 
-                   'int', 
-                   [param('int', 'mcs')])
-    ## amc-module.h: static ns3::TypeId ns3::AmcModule::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## amc-module.h: void ns3::AmcModule::Initialize() [member function]
-    cls.add_method('Initialize', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3BearerQosParameters_methods(root_module, cls):
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(ns3::BearerQosParameters const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BearerQosParameters const &', 'arg0')])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters() [constructor]
-    cls.add_constructor([])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, double gbr, double mbr) [constructor]
-    cls.add_constructor([param('int', 'qci'), param('double', 'gbr'), param('double', 'mbr')])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, bool apec, bool apev, double gbr, double mbr) [constructor]
-    cls.add_constructor([param('int', 'qci'), param('bool', 'apec'), param('bool', 'apev'), param('double', 'gbr'), param('double', 'mbr')])
-    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionCapability() const [member function]
-    cls.add_method('GetArpPreEmptionCapability', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionVulnerability() const [member function]
-    cls.add_method('GetArpPreEmptionVulnerability', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType ns3::BearerQosParameters::GetBearerQosType() const [member function]
-    cls.add_method('GetBearerQosType', 
-                   'ns3::BearerQosParameters::BearerQosType', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetGbr() const [member function]
-    cls.add_method('GetGbr', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMaxDelay() const [member function]
-    cls.add_method('GetMaxDelay', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMbr() const [member function]
-    cls.add_method('GetMbr', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: int ns3::BearerQosParameters::GetQci() const [member function]
-    cls.add_method('GetQci', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionCapability(bool apec) [member function]
-    cls.add_method('SetArpPreEmptionCapability', 
-                   'void', 
-                   [param('bool', 'apec')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionVulnerability(bool apev) [member function]
-    cls.add_method('SetArpPreEmptionVulnerability', 
-                   'void', 
-                   [param('bool', 'apev')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetBearerQosType(ns3::BearerQosParameters::BearerQosType QosType) [member function]
-    cls.add_method('SetBearerQosType', 
-                   'void', 
-                   [param('ns3::BearerQosParameters::BearerQosType', 'QosType')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetGbr(double gbr) [member function]
-    cls.add_method('SetGbr', 
-                   'void', 
-                   [param('double', 'gbr')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMaxDelay(double targetDelay) [member function]
-    cls.add_method('SetMaxDelay', 
-                   'void', 
-                   [param('double', 'targetDelay')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMbr(double mbr) [member function]
-    cls.add_method('SetMbr', 
-                   'void', 
-                   [param('double', 'mbr')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetQci(int qci) [member function]
-    cls.add_method('SetQci', 
-                   'void', 
-                   [param('int', 'qci')])
-    return
-
-def register_Ns3ChannelRealization_methods(root_module, cls):
-    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization(ns3::ChannelRealization const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ChannelRealization const &', 'arg0')])
-    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization() [constructor]
-    cls.add_constructor([])
-    ## channel-realization.h: ns3::Ptr<ns3::JakesFadingLossModel> ns3::ChannelRealization::GetJakesFadingLossModel() [member function]
-    cls.add_method('GetJakesFadingLossModel', 
-                   'ns3::Ptr< ns3::JakesFadingLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::PathLossModel> ns3::ChannelRealization::GetPathLossModel() [member function]
-    cls.add_method('GetPathLossModel', 
-                   'ns3::Ptr< ns3::PathLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::PenetrationLossModel> ns3::ChannelRealization::GetPenetrationLossModel() [member function]
-    cls.add_method('GetPenetrationLossModel', 
-                   'ns3::Ptr< ns3::PenetrationLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::ShadowingLossModel> ns3::ChannelRealization::GetShadowingLossModel() [member function]
-    cls.add_method('GetShadowingLossModel', 
-                   'ns3::Ptr< ns3::ShadowingLossModel >', 
-                   [])
-    ## channel-realization.h: static ns3::TypeId ns3::ChannelRealization::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## channel-realization.h: void ns3::ChannelRealization::SetJakesFadingLossModel(ns3::Ptr<ns3::JakesFadingLossModel> l) [member function]
-    cls.add_method('SetJakesFadingLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::JakesFadingLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetPathLossModel(ns3::Ptr<ns3::PathLossModel> l) [member function]
-    cls.add_method('SetPathLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PathLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetPenetrationLossModel(ns3::Ptr<ns3::PenetrationLossModel> l) [member function]
-    cls.add_method('SetPenetrationLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PenetrationLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetShadowingLossModel(ns3::Ptr<ns3::ShadowingLossModel> l) [member function]
-    cls.add_method('SetShadowingLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::ShadowingLossModel >', 'l')])
-    return
-
-def register_Ns3DeviceEnergyModel_methods(root_module, cls):
-    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel(ns3::DeviceEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
-    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
-    cls.add_method('GetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DiscreteTimeLossModel_methods(root_module, cls):
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel(ns3::DiscreteTimeLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DiscreteTimeLossModel const &', 'arg0')])
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel() [constructor]
-    cls.add_constructor([])
-    ## discrete-time-loss-model.h: ns3::Time ns3::DiscreteTimeLossModel::GetLastUpdate() [member function]
-    cls.add_method('GetLastUpdate', 
-                   'ns3::Time', 
-                   [])
-    ## discrete-time-loss-model.h: double ns3::DiscreteTimeLossModel::GetSamplingPeriod() [member function]
-    cls.add_method('GetSamplingPeriod', 
-                   'double', 
-                   [])
-    ## discrete-time-loss-model.h: static ns3::TypeId ns3::DiscreteTimeLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## discrete-time-loss-model.h: bool ns3::DiscreteTimeLossModel::NeedForUpdate() [member function]
-    cls.add_method('NeedForUpdate', 
-                   'bool', 
-                   [])
-    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetLastUpdate() [member function]
-    cls.add_method('SetLastUpdate', 
-                   'void', 
-                   [])
-    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetSamplingPeriod(double sp) [member function]
-    cls.add_method('SetSamplingPeriod', 
-                   'void', 
-                   [param('double', 'sp')])
-    return
-
-def register_Ns3EnergySource_methods(root_module, cls):
-    ## energy-source.h: ns3::EnergySource::EnergySource(ns3::EnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySource const &', 'arg0')])
-    ## energy-source.h: ns3::EnergySource::EnergySource() [constructor]
-    cls.add_constructor([])
-    ## energy-source.h: void ns3::EnergySource::AppendDeviceEnergyModel(ns3::Ptr<ns3::DeviceEnergyModel> deviceEnergyModelPtr) [member function]
-    cls.add_method('AppendDeviceEnergyModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'deviceEnergyModelPtr')])
-    ## energy-source.h: void ns3::EnergySource::DisposeDeviceModels() [member function]
-    cls.add_method('DisposeDeviceModels', 
-                   'void', 
-                   [])
-    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
-    cls.add_method('FindDeviceEnergyModels', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::TypeId', 'tid')])
-    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
-    cls.add_method('FindDeviceEnergyModels', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('std::string', 'name')])
-    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True)
-    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## energy-source.h: void ns3::EnergySource::StartDeviceModels() [member function]
-    cls.add_method('StartDeviceModels', 
-                   'void', 
-                   [])
-    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
-    cls.add_method('BreakDeviceEnergyModelRefCycle', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
-    cls.add_method('CalculateTotalCurrent', 
-                   'double', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
-    cls.add_method('NotifyEnergyDrained', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnergySourceContainer_methods(root_module, cls):
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
-    cls.add_constructor([])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
-    cls.add_constructor([param('std::string', 'sourceName')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
-    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::EnergySourceContainer', 'container')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('std::string', 'sourceName')])
-    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
-    cls.add_method('Get', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
-    cls.add_method('GetN', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FlowClassifier_methods(root_module, cls):
-    ## flow-classifier.h: ns3::FlowClassifier::FlowClassifier() [constructor]
-    cls.add_constructor([])
-    ## flow-classifier.h: void ns3::FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## flow-classifier.h: ns3::FlowId ns3::FlowClassifier::GetNewFlowId() [member function]
-    cls.add_method('GetNewFlowId', 
-                   'ns3::FlowId', 
-                   [], 
-                   visibility='protected')
-    return
-
-def register_Ns3FlowMonitor_methods(root_module, cls):
-    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor(ns3::FlowMonitor const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitor const &', 'arg0')])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor.h: void ns3::FlowMonitor::AddProbe(ns3::Ptr<ns3::FlowProbe> probe) [member function]
-    cls.add_method('AddProbe', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe')])
-    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets() [member function]
-    cls.add_method('CheckForLostPackets', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets(ns3::Time maxDelay) [member function]
-    cls.add_method('CheckForLostPackets', 
-                   'void', 
-                   [param('ns3::Time', 'maxDelay')])
-    ## flow-monitor.h: std::vector<ns3::Ptr<ns3::FlowProbe>, std::allocator<ns3::Ptr<ns3::FlowProbe> > > ns3::FlowMonitor::GetAllProbes() const [member function]
-    cls.add_method('GetAllProbes', 
-                   'std::vector< ns3::Ptr< ns3::FlowProbe > >', 
-                   [], 
-                   is_const=True)
-    ## flow-monitor.h: std::map<unsigned int, ns3::FlowMonitor::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowMonitor::FlowStats> > > ns3::FlowMonitor::GetFlowStats() const [member function]
-    cls.add_method('GetFlowStats', 
-                   'std::map< unsigned int, ns3::FlowMonitor::FlowStats >', 
-                   [], 
-                   is_const=True)
-    ## flow-monitor.h: ns3::TypeId ns3::FlowMonitor::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## flow-monitor.h: static ns3::TypeId ns3::FlowMonitor::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportDrop(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode) [member function]
-    cls.add_method('ReportDrop', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportFirstTx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportFirstTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportForwarding(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportForwarding', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportLastRx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportLastRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlFile(std::string fileName, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlFile', 
-                   'void', 
-                   [param('std::string', 'fileName'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlStream(std::ostream & os, int indent, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: std::string ns3::FlowMonitor::SerializeToXmlString(int indent, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlString', 
-                   'std::string', 
-                   [param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SetFlowClassifier(ns3::Ptr<ns3::FlowClassifier> classifier) [member function]
-    cls.add_method('SetFlowClassifier', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowClassifier >', 'classifier')])
-    ## flow-monitor.h: void ns3::FlowMonitor::Start(ns3::Time const & time) [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [param('ns3::Time const &', 'time')])
-    ## flow-monitor.h: void ns3::FlowMonitor::StartRightNow() [member function]
-    cls.add_method('StartRightNow', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::Stop(ns3::Time const & time) [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [param('ns3::Time const &', 'time')])
-    ## flow-monitor.h: void ns3::FlowMonitor::StopRightNow() [member function]
-    cls.add_method('StopRightNow', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::NotifyConstructionCompleted() [member function]
-    cls.add_method('NotifyConstructionCompleted', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3FlowMonitorFlowStats_methods(root_module, cls):
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats(ns3::FlowMonitor::FlowStats const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitor::FlowStats const &', 'arg0')])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::bytesDropped [variable]
-    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long long >', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delayHistogram [variable]
-    cls.add_instance_attribute('delayHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delaySum [variable]
-    cls.add_instance_attribute('delaySum', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::flowInterruptionsHistogram [variable]
-    cls.add_instance_attribute('flowInterruptionsHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterHistogram [variable]
-    cls.add_instance_attribute('jitterHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterSum [variable]
-    cls.add_instance_attribute('jitterSum', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lastDelay [variable]
-    cls.add_instance_attribute('lastDelay', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lostPackets [variable]
-    cls.add_instance_attribute('lostPackets', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetSizeHistogram [variable]
-    cls.add_instance_attribute('packetSizeHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetsDropped [variable]
-    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxBytes [variable]
-    cls.add_instance_attribute('rxBytes', 'uint64_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxPackets [variable]
-    cls.add_instance_attribute('rxPackets', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstRxPacket [variable]
-    cls.add_instance_attribute('timeFirstRxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstTxPacket [variable]
-    cls.add_instance_attribute('timeFirstTxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastRxPacket [variable]
-    cls.add_instance_attribute('timeLastRxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastTxPacket [variable]
-    cls.add_instance_attribute('timeLastTxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timesForwarded [variable]
-    cls.add_instance_attribute('timesForwarded', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txBytes [variable]
-    cls.add_instance_attribute('txBytes', 'uint64_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txPackets [variable]
-    cls.add_instance_attribute('txPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3FlowProbe_methods(root_module, cls):
-    ## flow-probe.h: void ns3::FlowProbe::AddPacketDropStats(ns3::FlowId flowId, uint32_t packetSize, uint32_t reasonCode) [member function]
-    cls.add_method('AddPacketDropStats', 
-                   'void', 
-                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
-    ## flow-probe.h: void ns3::FlowProbe::AddPacketStats(ns3::FlowId flowId, uint32_t packetSize, ns3::Time delayFromFirstProbe) [member function]
-    cls.add_method('AddPacketStats', 
-                   'void', 
-                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('ns3::Time', 'delayFromFirstProbe')])
-    ## flow-probe.h: std::map<unsigned int, ns3::FlowProbe::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowProbe::FlowStats> > > ns3::FlowProbe::GetStats() const [member function]
-    cls.add_method('GetStats', 
-                   'std::map< unsigned int, ns3::FlowProbe::FlowStats >', 
-                   [], 
-                   is_const=True)
-    ## flow-probe.h: void ns3::FlowProbe::SerializeToXmlStream(std::ostream & os, int indent, uint32_t index) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('uint32_t', 'index')], 
-                   is_const=True)
-    ## flow-probe.h: ns3::FlowProbe::FlowProbe(ns3::Ptr<ns3::FlowMonitor> flowMonitor) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'flowMonitor')], 
-                        visibility='protected')
-    return
-
-def register_Ns3FlowProbeFlowStats_methods(root_module, cls):
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats(ns3::FlowProbe::FlowStats const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowProbe::FlowStats const &', 'arg0')])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats() [constructor]
-    cls.add_constructor([])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint64_t', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytesDropped [variable]
-    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long long >', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::delayFromFirstProbeSum [variable]
-    cls.add_instance_attribute('delayFromFirstProbeSum', 'ns3::Time', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::packets [variable]
-    cls.add_instance_attribute('packets', 'uint32_t', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::packetsDropped [variable]
-    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
-    return
-
-def register_Ns3GlobalRouter_methods(root_module, cls):
-    ## global-router-interface.h: static ns3::TypeId ns3::GlobalRouter::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## global-router-interface.h: ns3::GlobalRouter::GlobalRouter() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: void ns3::GlobalRouter::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4GlobalRouting> routing) [member function]
-    cls.add_method('SetRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4GlobalRouting >', 'routing')])
-    ## global-router-interface.h: ns3::Ptr<ns3::Ipv4GlobalRouting> ns3::GlobalRouter::GetRoutingProtocol() [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv4GlobalRouting >', 
-                   [])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRouter::GetRouterId() const [member function]
-    cls.add_method('GetRouterId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::DiscoverLSAs() [member function]
-    cls.add_method('DiscoverLSAs', 
-                   'uint32_t', 
-                   [])
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNumLSAs() const [member function]
-    cls.add_method('GetNumLSAs', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: bool ns3::GlobalRouter::GetLSA(uint32_t n, ns3::GlobalRoutingLSA & lsa) const [member function]
-    cls.add_method('GetLSA', 
-                   'bool', 
-                   [param('uint32_t', 'n'), param('ns3::GlobalRoutingLSA &', 'lsa')], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRouter::InjectRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
-    cls.add_method('InjectRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNInjectedRoutes() [member function]
-    cls.add_method('GetNInjectedRoutes', 
-                   'uint32_t', 
-                   [])
-    ## global-router-interface.h: ns3::Ipv4RoutingTableEntry * ns3::GlobalRouter::GetInjectedRoute(uint32_t i) [member function]
-    cls.add_method('GetInjectedRoute', 
-                   retval('ns3::Ipv4RoutingTableEntry *', caller_owns_return=False), 
-                   [param('uint32_t', 'i')])
-    ## global-router-interface.h: void ns3::GlobalRouter::RemoveInjectedRoute(uint32_t i) [member function]
-    cls.add_method('RemoveInjectedRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## global-router-interface.h: bool ns3::GlobalRouter::WithdrawRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
-    cls.add_method('WithdrawRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
-    ## global-router-interface.h: void ns3::GlobalRouter::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3IdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage(ns3::IdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::IdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetDestinationDevice() [member function]
-    cls.add_method('GetDestinationDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType ns3::IdealControlMessage::GetMessageType() [member function]
-    cls.add_method('GetMessageType', 
-                   'ns3::IdealControlMessage::MessageType', 
-                   [])
-    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetSourceDevice() [member function]
-    cls.add_method('GetSourceDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetDestinationDevice(ns3::Ptr<ns3::LteNetDevice> dst) [member function]
-    cls.add_method('SetDestinationDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'dst')])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetMessageType(ns3::IdealControlMessage::MessageType type) [member function]
-    cls.add_method('SetMessageType', 
-                   'void', 
-                   [param('ns3::IdealControlMessage::MessageType', 'type')])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetSourceDevice(ns3::Ptr<ns3::LteNetDevice> src) [member function]
-    cls.add_method('SetSourceDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'src')])
-    return
-
-def register_Ns3Ipv4FlowClassifier_methods(root_module, cls):
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::Ipv4FlowClassifier() [constructor]
-    cls.add_constructor([])
-    ## ipv4-flow-classifier.h: bool ns3::Ipv4FlowClassifier::Classify(ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet const> ipPayload, uint32_t * out_flowId, uint32_t * out_packetId) [member function]
-    cls.add_method('Classify', 
-                   'bool', 
-                   [param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet const >', 'ipPayload'), param('uint32_t *', 'out_flowId'), param('uint32_t *', 'out_packetId')])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple ns3::Ipv4FlowClassifier::FindFlow(ns3::FlowId flowId) const [member function]
-    cls.add_method('FindFlow', 
-                   'ns3::Ipv4FlowClassifier::FiveTuple', 
-                   [param('ns3::FlowId', 'flowId')], 
-                   is_const=True)
-    ## ipv4-flow-classifier.h: void ns3::Ipv4FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('<')
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
-    cls.add_constructor([])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4FlowClassifier::FiveTuple const &', 'arg0')])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationAddress [variable]
-    cls.add_instance_attribute('destinationAddress', 'ns3::Ipv4Address', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationPort [variable]
-    cls.add_instance_attribute('destinationPort', 'uint16_t', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::protocol [variable]
-    cls.add_instance_attribute('protocol', 'uint8_t', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourceAddress [variable]
-    cls.add_instance_attribute('sourceAddress', 'ns3::Ipv4Address', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourcePort [variable]
-    cls.add_instance_attribute('sourcePort', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3Ipv4FlowProbe_methods(root_module, cls):
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::Ipv4FlowProbe(ns3::Ptr<ns3::FlowMonitor> monitor, ns3::Ptr<ns3::Ipv4FlowClassifier> classifier, ns3::Ptr<ns3::Node> node) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'monitor'), param('ns3::Ptr< ns3::Ipv4FlowClassifier >', 'classifier'), param('ns3::Ptr< ns3::Node >', 'node')])
-    return
-
-def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
-    cls.add_method('GetDefaultRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [])
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetMetric(uint32_t index) [member function]
-    cls.add_method('GetMetric', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
-    cls.add_method('GetMulticastRoute', 
-                   'ns3::Ipv4MulticastRoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
-    cls.add_method('GetNMulticastRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() const [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetRoute(uint32_t i) const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-static-routing.h: static ns3::TypeId ns3::Ipv4StaticRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'index')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'outputInterface')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('SetDefaultRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv6StaticRouting_methods(root_module, cls):
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting(ns3::Ipv6StaticRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6StaticRouting const &', 'arg0')])
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetDefaultRoute() [member function]
-    cls.add_method('GetDefaultRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [])
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetMetric(uint32_t index) [member function]
-    cls.add_method('GetMetric', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## ipv6-static-routing.h: ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
-    cls.add_method('GetMulticastRoute', 
-                   'ns3::Ipv6MulticastRoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNMulticastRoutes() const [member function]
-    cls.add_method('GetNMulticastRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNRoutes() [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [])
-    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetRoute(uint32_t i) [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: static ns3::TypeId ns3::Ipv6StaticRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::HasNetworkDest(ns3::Ipv6Address dest, uint32_t interfaceIndex) [member function]
-    cls.add_method('HasNetworkDest', 
-                   'bool', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interfaceIndex')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyAddRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyRemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RemoveMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'bool', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveMulticastRoute(uint32_t i) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(ns3::Ipv6Address network, ns3::Ipv6Prefix prefix, uint32_t ifIndex, ns3::Ipv6Address prefixToUse) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'prefix'), param('uint32_t', 'ifIndex'), param('ns3::Ipv6Address', 'prefixToUse')])
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv6Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'outputInterface')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
-    cls.add_method('SetDefaultRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
-    cls.add_method('SetIpv6', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3JakesFadingLossModel_methods(root_module, cls):
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel(ns3::JakesFadingLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::JakesFadingLossModel const &', 'arg0')])
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel() [constructor]
-    cls.add_constructor([])
-    ## jakes-fading-loss-model.h: ns3::Ptr<ns3::LtePhy> ns3::JakesFadingLossModel::GetPhy() [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::LtePhy >', 
-                   [])
-    ## jakes-fading-loss-model.h: static ns3::TypeId ns3::JakesFadingLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## jakes-fading-loss-model.h: double ns3::JakesFadingLossModel::GetValue(int subChannel) [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [param('int', 'subChannel')])
-    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetValue() [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3LiIonEnergySource_methods(root_module, cls):
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource(ns3::LiIonEnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LiIonEnergySource const &', 'arg0')])
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource() [constructor]
-    cls.add_constructor([])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: ns3::Time ns3::LiIonEnergySource::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## li-ion-energy-source.h: static ns3::TypeId ns3::LiIonEnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('IncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
-    cls.add_method('SetInitialEnergy', 
-                   'void', 
-                   [param('double', 'initialEnergyJ')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialSupplyVoltage(double supplyVoltageV) [member function]
-    cls.add_method('SetInitialSupplyVoltage', 
-                   'void', 
-                   [param('double', 'supplyVoltageV')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3LteMacQueue_methods(root_module, cls):
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(ns3::LteMacQueue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteMacQueue const &', 'arg0')])
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue() [constructor]
-    cls.add_constructor([])
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(uint32_t maxSize) [constructor]
-    cls.add_constructor([param('uint32_t', 'maxSize')])
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue(uint32_t availableByte) [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [param('uint32_t', 'availableByte')])
-    ## lte-mac-queue.h: bool ns3::LteMacQueue::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetMaxSize() const [member function]
-    cls.add_method('GetMaxSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetNBytes() const [member function]
-    cls.add_method('GetNBytes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: std::deque<ns3::LteMacQueue::QueueElement, std::allocator<ns3::LteMacQueue::QueueElement> > const & ns3::LteMacQueue::GetPacketQueue() const [member function]
-    cls.add_method('GetPacketQueue', 
-                   'std::deque< ns3::LteMacQueue::QueueElement > const &', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetQueueLengthWithMACOverhead() [member function]
-    cls.add_method('GetQueueLengthWithMACOverhead', 
-                   'uint32_t', 
-                   [])
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetSize() const [member function]
-    cls.add_method('GetSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: static ns3::TypeId ns3::LteMacQueue::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-mac-queue.h: bool ns3::LteMacQueue::IsEmpty() const [member function]
-    cls.add_method('IsEmpty', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Peek() const [member function]
-    cls.add_method('Peek', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: void ns3::LteMacQueue::SetMaxSize(uint32_t maxSize) [member function]
-    cls.add_method('SetMaxSize', 
-                   'void', 
-                   [param('uint32_t', 'maxSize')])
-    return
-
-def register_Ns3LtePhy_methods(root_module, cls):
-    ## lte-phy.h: ns3::LtePhy::LtePhy(ns3::LtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LtePhy const &', 'arg0')])
-    ## lte-phy.h: ns3::LtePhy::LtePhy() [constructor]
-    cls.add_constructor([])
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoSetDownlinkSubChannels() [member function]
-    cls.add_method('DoSetDownlinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoSetUplinkSubChannels() [member function]
-    cls.add_method('DoSetUplinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: ns3::Ptr<ns3::LteNetDevice> ns3::LtePhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetDownlinkChannel() [member function]
-    cls.add_method('GetDownlinkChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetDownlinkSpectrumPhy() [member function]
-    cls.add_method('GetDownlinkSpectrumPhy', 
-                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
-                   [])
-    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetDownlinkSubChannels() [member function]
-    cls.add_method('GetDownlinkSubChannels', 
-                   'std::vector< int >', 
-                   [])
-    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrFrames() const [member function]
-    cls.add_method('GetNrFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrSubFrames() const [member function]
-    cls.add_method('GetNrSubFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: double ns3::LtePhy::GetTti() const [member function]
-    cls.add_method('GetTti', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: double ns3::LtePhy::GetTxPower() [member function]
-    cls.add_method('GetTxPower', 
-                   'double', 
-                   [])
-    ## lte-phy.h: static ns3::TypeId ns3::LtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetUplinkChannel() [member function]
-    cls.add_method('GetUplinkChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetUplinkSpectrumPhy() [member function]
-    cls.add_method('GetUplinkSpectrumPhy', 
-                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
-                   [])
-    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetUplinkSubChannels() [member function]
-    cls.add_method('GetUplinkSubChannels', 
-                   'std::vector< int >', 
-                   [])
-    ## lte-phy.h: void ns3::LtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: bool ns3::LtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetDownlinkChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
-    cls.add_method('SetDownlinkSpectrumPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetDownlinkSubChannels', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    ## lte-phy.h: void ns3::LtePhy::SetNrFrames(uint32_t nrFrames) [member function]
-    cls.add_method('SetNrFrames', 
-                   'void', 
-                   [param('uint32_t', 'nrFrames')])
-    ## lte-phy.h: void ns3::LtePhy::SetNrSubFrames(uint32_t nrSubFrames) [member function]
-    cls.add_method('SetNrSubFrames', 
-                   'void', 
-                   [param('uint32_t', 'nrSubFrames')])
-    ## lte-phy.h: void ns3::LtePhy::SetTti(double tti) [member function]
-    cls.add_method('SetTti', 
-                   'void', 
-                   [param('double', 'tti')])
-    ## lte-phy.h: void ns3::LtePhy::SetTxPower(double pw) [member function]
-    cls.add_method('SetTxPower', 
-                   'void', 
-                   [param('double', 'pw')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetUplinkChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
-    cls.add_method('SetUplinkSpectrumPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetUplinkSubChannels', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    return
-
-def register_Ns3LtePropagationLossModel_methods(root_module, cls):
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel(ns3::LtePropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LtePropagationLossModel const &', 'arg0')])
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## lte-propagation-loss-model.h: void ns3::LtePropagationLossModel::CreateChannelRealization(ns3::Ptr<const ns3::MobilityModel> enbMobility, ns3::Ptr<const ns3::MobilityModel> ueMobility) [member function]
-    cls.add_method('CreateChannelRealization', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel const >', 'ueMobility')])
-    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::ChannelRealization> ns3::LtePropagationLossModel::GetChannelRealization(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetChannelRealization', 
-                   'ns3::Ptr< ns3::ChannelRealization >', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True)
-    ## lte-propagation-loss-model.h: static ns3::TypeId ns3::LtePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3LteSpectrumPhy_methods(root_module, cls):
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy(ns3::LteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteSpectrumPhy const &', 'arg0')])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LteSpectrumPhy::GetChannel() [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetMobility() [member function]
-    cls.add_method('GetMobility', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumValue const> ns3::LteSpectrumPhy::GetNoisePowerSpectralDensity() [member function]
-    cls.add_method('GetNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue const >', 
-                   [])
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::LteSpectrumPhy::GetRxSpectrumModel() const [member function]
-    cls.add_method('GetRxSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::SpectrumType ns3::LteSpectrumPhy::GetSpectrumType() [member function]
-    cls.add_method('GetSpectrumType', 
-                   'ns3::SpectrumType', 
-                   [])
-    ## lte-spectrum-phy.h: static ns3::TypeId ns3::LteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'd')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
-    cls.add_method('SetMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'm')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> noisePsd) [member function]
-    cls.add_method('SetNoisePowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndErrorCallback(ns3::PhyMacRxEndErrorCallback c) [member function]
-    cls.add_method('SetPhyMacRxEndErrorCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxEndErrorCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndOkCallback(ns3::PhyMacRxEndOkCallback c) [member function]
-    cls.add_method('SetPhyMacRxEndOkCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxEndOkCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxStartCallback(ns3::PhyMacRxStartCallback c) [member function]
-    cls.add_method('SetPhyMacRxStartCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxStartCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacTxEndCallback(ns3::PhyMacTxEndCallback c) [member function]
-    cls.add_method('SetPhyMacTxEndCallback', 
-                   'void', 
-                   [param('ns3::PhyMacTxEndCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetState(ns3::LteSpectrumPhy::State newState) [member function]
-    cls.add_method('SetState', 
-                   'void', 
-                   [param('ns3::LteSpectrumPhy::State', 'newState')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> pb, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
-    cls.add_method('StartRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: bool ns3::LteSpectrumPhy::StartTx(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('StartTx', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::EndRx() [member function]
-    cls.add_method('EndRx', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3MacEntity_methods(root_module, cls):
-    ## mac-entity.h: ns3::MacEntity::MacEntity(ns3::MacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::MacEntity const &', 'arg0')])
-    ## mac-entity.h: ns3::MacEntity::MacEntity() [constructor]
-    cls.add_constructor([])
-    ## mac-entity.h: void ns3::MacEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## mac-entity.h: ns3::Ptr<ns3::AmcModule> ns3::MacEntity::GetAmcModule() const [member function]
-    cls.add_method('GetAmcModule', 
-                   'ns3::Ptr< ns3::AmcModule >', 
-                   [], 
-                   is_const=True)
-    ## mac-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::MacEntity::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## mac-entity.h: static ns3::TypeId ns3::MacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## mac-entity.h: void ns3::MacEntity::SetAmcModule(ns3::Ptr<ns3::AmcModule> amcModule) [member function]
-    cls.add_method('SetAmcModule', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::AmcModule >', 'amcModule')])
-    ## mac-entity.h: void ns3::MacEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    return
-
-def register_Ns3PathLossModel_methods(root_module, cls):
-    ## path-loss-model.h: ns3::PathLossModel::PathLossModel(ns3::PathLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PathLossModel const &', 'arg0')])
-    ## path-loss-model.h: ns3::PathLossModel::PathLossModel() [constructor]
-    cls.add_constructor([])
-    ## path-loss-model.h: static ns3::TypeId ns3::PathLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## path-loss-model.h: double ns3::PathLossModel::GetValue(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')])
-    ## path-loss-model.h: void ns3::PathLossModel::SetValue(double pl) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'pl')])
-    return
-
-def register_Ns3PdcchMapIdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage(ns3::PdcchMapIdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: void ns3::PdcchMapIdealControlMessage::AddNewRecord(ns3::PdcchMapIdealControlMessage::Direction direction, int subChannel, ns3::Ptr<ns3::LteNetDevice> ue, double mcs) [member function]
-    cls.add_method('AddNewRecord', 
-                   'void', 
-                   [param('ns3::PdcchMapIdealControlMessage::Direction', 'direction'), param('int', 'subChannel'), param('ns3::Ptr< ns3::LteNetDevice >', 'ue'), param('double', 'mcs')])
-    ## ideal-control-messages.h: std::list<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord,std::allocator<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord> > * ns3::PdcchMapIdealControlMessage::GetMessage() [member function]
-    cls.add_method('GetMessage', 
-                   'std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord > *', 
-                   [])
-    return
-
-def register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord(ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_direction [variable]
-    cls.add_instance_attribute('m_direction', 'ns3::PdcchMapIdealControlMessage::Direction', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_idSubChannel [variable]
-    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_mcsIndex [variable]
-    cls.add_instance_attribute('m_mcsIndex', 'double', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_ue [variable]
-    cls.add_instance_attribute('m_ue', 'ns3::Ptr< ns3::LteNetDevice >', is_const=False)
-    return
-
-def register_Ns3PenetrationLossModel_methods(root_module, cls):
-    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel(ns3::PenetrationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PenetrationLossModel const &', 'arg0')])
-    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel() [constructor]
-    cls.add_constructor([])
-    ## penetration-loss-model.h: static ns3::TypeId ns3::PenetrationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## penetration-loss-model.h: double ns3::PenetrationLossModel::GetValue() [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [])
-    ## penetration-loss-model.h: void ns3::PenetrationLossModel::SetValue(double pnl) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'pnl')])
-    return
-
-def register_Ns3RvBatteryModel_methods(root_module, cls):
-    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel(ns3::RvBatteryModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RvBatteryModel const &', 'arg0')])
-    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel() [constructor]
-    cls.add_constructor([])
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetAlpha() const [member function]
-    cls.add_method('GetAlpha', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBatteryLevel() [member function]
-    cls.add_method('GetBatteryLevel', 
-                   'double', 
-                   [])
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBeta() const [member function]
-    cls.add_method('GetBeta', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetCutoffVoltage() const [member function]
-    cls.add_method('GetCutoffVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetLifetime() const [member function]
-    cls.add_method('GetLifetime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: int ns3::RvBatteryModel::GetNumOfTerms() const [member function]
-    cls.add_method('GetNumOfTerms', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetOpenCircuitVoltage() const [member function]
-    cls.add_method('GetOpenCircuitVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetSamplingInterval() const [member function]
-    cls.add_method('GetSamplingInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## rv-battery-model.h: static ns3::TypeId ns3::RvBatteryModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetAlpha(double alpha) [member function]
-    cls.add_method('SetAlpha', 
-                   'void', 
-                   [param('double', 'alpha')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetBeta(double beta) [member function]
-    cls.add_method('SetBeta', 
-                   'void', 
-                   [param('double', 'beta')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetCutoffVoltage(double voltage) [member function]
-    cls.add_method('SetCutoffVoltage', 
-                   'void', 
-                   [param('double', 'voltage')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetNumOfTerms(int num) [member function]
-    cls.add_method('SetNumOfTerms', 
-                   'void', 
-                   [param('int', 'num')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetOpenCircuitVoltage(double voltage) [member function]
-    cls.add_method('SetOpenCircuitVoltage', 
-                   'void', 
-                   [param('double', 'voltage')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetSamplingInterval(ns3::Time interval) [member function]
-    cls.add_method('SetSamplingInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3ShadowingLossModel_methods(root_module, cls):
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(ns3::ShadowingLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ShadowingLossModel const &', 'arg0')])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel() [constructor]
-    cls.add_constructor([])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(double mu, double sigma, double samplingPeriod) [constructor]
-    cls.add_constructor([param('double', 'mu'), param('double', 'sigma'), param('double', 'samplingPeriod')])
-    ## shadowing-loss-model.h: static ns3::TypeId ns3::ShadowingLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## shadowing-loss-model.h: double ns3::ShadowingLossModel::GetValue() [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [])
-    ## shadowing-loss-model.h: void ns3::ShadowingLossModel::SetValue(double sh) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'sh')])
-    return
-
-def register_Ns3SimpleDeviceEnergyModel_methods(root_module, cls):
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel(ns3::SimpleDeviceEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleDeviceEnergyModel const &', 'arg0')])
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: ns3::Ptr<ns3::Node> ns3::SimpleDeviceEnergyModel::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## simple-device-energy-model.h: static ns3::TypeId ns3::SimpleDeviceEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetCurrentA(double current) [member function]
-    cls.add_method('SetCurrentA', 
-                   'void', 
-                   [param('double', 'current')])
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UanChannel_methods(root_module, cls):
-    ## uan-channel.h: ns3::UanChannel::UanChannel(ns3::UanChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanChannel const &', 'arg0')])
-    ## uan-channel.h: ns3::UanChannel::UanChannel() [constructor]
-    cls.add_constructor([])
-    ## uan-channel.h: void ns3::UanChannel::AddDevice(ns3::Ptr<ns3::UanNetDevice> dev, ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('AddDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'dev'), param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
-    ## uan-channel.h: void ns3::UanChannel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## uan-channel.h: ns3::Ptr<ns3::NetDevice> ns3::UanChannel::GetDevice(uint32_t i) const [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## uan-channel.h: uint32_t ns3::UanChannel::GetNDevices() const [member function]
-    cls.add_method('GetNDevices', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-channel.h: double ns3::UanChannel::GetNoiseDbHz(double fKhz) [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')])
-    ## uan-channel.h: static ns3::TypeId ns3::UanChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-channel.h: void ns3::UanChannel::SetNoiseModel(ns3::Ptr<ns3::UanNoiseModel> noise) [member function]
-    cls.add_method('SetNoiseModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNoiseModel >', 'noise')])
-    ## uan-channel.h: void ns3::UanChannel::SetPropagationModel(ns3::Ptr<ns3::UanPropModel> prop) [member function]
-    cls.add_method('SetPropagationModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPropModel >', 'prop')])
-    ## uan-channel.h: void ns3::UanChannel::TxPacket(ns3::Ptr<ns3::UanTransducer> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txmode) [member function]
-    cls.add_method('TxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txmode')])
-    ## uan-channel.h: void ns3::UanChannel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanModesListChecker_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker(ns3::UanModesListChecker const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesListChecker const &', 'arg0')])
-    return
-
-def register_Ns3UanModesListValue_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesListValue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesListValue const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesList const & value) [constructor]
-    cls.add_constructor([param('ns3::UanModesList const &', 'value')])
-    ## uan-tx-mode.h: ns3::Ptr<ns3::AttributeValue> ns3::UanModesListValue::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ptr< ns3::AttributeValue >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-tx-mode.h: bool ns3::UanModesListValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
-    cls.add_method('DeserializeFromString', 
-                   'bool', 
-                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
-                   is_virtual=True)
-    ## uan-tx-mode.h: ns3::UanModesList ns3::UanModesListValue::Get() const [member function]
-    cls.add_method('Get', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: std::string ns3::UanModesListValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
-    cls.add_method('SerializeToString', 
-                   'std::string', 
-                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
-                   is_const=True, is_virtual=True)
-    ## uan-tx-mode.h: void ns3::UanModesListValue::Set(ns3::UanModesList const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('ns3::UanModesList const &', 'value')])
-    return
-
-def register_Ns3UanNetDevice_methods(root_module, cls):
-    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice(ns3::UanNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNetDevice const &', 'arg0')])
-    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice() [constructor]
-    cls.add_constructor([])
-    ## uan-net-device.h: void ns3::UanNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::Channel> ns3::UanNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: uint32_t ns3::UanNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanMac> ns3::UanNetDevice::GetMac() const [member function]
-    cls.add_method('GetMac', 
-                   'ns3::Ptr< ns3::UanMac >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: uint16_t ns3::UanNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::Node> ns3::UanNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanPhy> ns3::UanNetDevice::GetPhy() const [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::UanPhy >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanTransducer> ns3::UanNetDevice::GetTransducer() const [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: static ns3::TypeId ns3::UanNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')])
-    ## uan-net-device.h: void ns3::UanNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')])
-    ## uan-net-device.h: bool ns3::UanNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')])
-    ## uan-net-device.h: void ns3::UanNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
-    ## uan-net-device.h: bool ns3::UanNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> pkt, ns3::UanAddress const & src) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::UanAddress const &', 'src')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UeLtePhy_methods(root_module, cls):
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::UeLtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeLtePhy const &', 'arg0')])
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy() [constructor]
-    cls.add_constructor([])
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## ue-phy.h: void ns3::UeLtePhy::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'void', 
-                   [param('std::vector< double >', 'sinr')])
-    ## ue-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::UeLtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::DoSetUplinkSubChannels() [member function]
-    cls.add_method('DoSetUplinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForReception() [member function]
-    cls.add_method('GetSubChannelsForReception', 
-                   'std::vector< int >', 
-                   [])
-    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForTransmission() [member function]
-    cls.add_method('GetSubChannelsForTransmission', 
-                   'std::vector< int >', 
-                   [])
-    ## ue-phy.h: static ns3::TypeId ns3::UeLtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ue-phy.h: void ns3::UeLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## ue-phy.h: bool ns3::UeLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForReception(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetSubChannelsForReception', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForTransmission(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetSubChannelsForTransmission', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    return
-
-def register_Ns3UeLteSpectrumPhy_methods(root_module, cls):
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy(ns3::UeLteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeLteSpectrumPhy const &', 'arg0')])
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## ue-lte-spectrum-phy.h: void ns3::UeLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_virtual=True)
-    ## ue-lte-spectrum-phy.h: static ns3::TypeId ns3::UeLteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UeMacEntity_methods(root_module, cls):
-    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity(ns3::UeMacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeMacEntity const &', 'arg0')])
-    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity() [constructor]
-    cls.add_constructor([])
-    ## ue-mac-entity.h: ns3::Ptr<ns3::CqiIdealControlMessage> ns3::UeMacEntity::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'ns3::Ptr< ns3::CqiIdealControlMessage >', 
-                   [param('std::vector< double >', 'sinr')])
-    ## ue-mac-entity.h: static ns3::TypeId ns3::UeMacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3VirtualNetDevice_methods(root_module, cls):
-    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice(ns3::VirtualNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::VirtualNetDevice const &', 'arg0')])
-    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice() [constructor]
-    cls.add_constructor([])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Ptr<ns3::Channel> ns3::VirtualNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: uint32_t ns3::VirtualNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: uint16_t ns3::VirtualNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Ptr<ns3::Node> ns3::VirtualNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: static ns3::TypeId ns3::VirtualNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Receive(ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
-    cls.add_method('Receive', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIsPointToPoint(bool isPointToPoint) [member function]
-    cls.add_method('SetIsPointToPoint', 
-                   'void', 
-                   [param('bool', 'isPointToPoint')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNeedsArp(bool needsArp) [member function]
-    cls.add_method('SetNeedsArp', 
-                   'void', 
-                   [param('bool', 'needsArp')])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSendCallback(ns3::Callback<bool, ns3::Ptr<ns3::Packet>, ns3::Address const&, ns3::Address const&, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> transmitCb) [member function]
-    cls.add_method('SetSendCallback', 
-                   'void', 
-                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::Address const &, ns3::Address const &, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'transmitCb')])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSupportsSendFrom(bool supportsSendFrom) [member function]
-    cls.add_method('SetSupportsSendFrom', 
-                   'void', 
-                   [param('bool', 'supportsSendFrom')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetCcaBusyCurrentA() const [member function]
-    cls.add_method('GetCcaBusyCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: ns3::WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'ns3::WifiPhy::State', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
-    cls.add_method('GetIdleCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener() [member function]
-    cls.add_method('GetPhyListener', 
-                   'ns3::WifiRadioEnergyModelPhyListener *', 
-                   [])
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
-    cls.add_method('GetRxCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSwitchingCurrentA() const [member function]
-    cls.add_method('GetSwitchingCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
-    cls.add_method('GetTxCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetCcaBusyCurrentA(double ccaBusyCurrentA) [member function]
-    cls.add_method('SetCcaBusyCurrentA', 
-                   'void', 
-                   [param('double', 'ccaBusyCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
-    cls.add_method('SetIdleCurrentA', 
-                   'void', 
-                   [param('double', 'idleCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
-    cls.add_method('SetRxCurrentA', 
-                   'void', 
-                   [param('double', 'rxCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSwitchingCurrentA(double switchingCurrentA) [member function]
-    cls.add_method('SetSwitchingCurrentA', 
-                   'void', 
-                   [param('double', 'switchingCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
-    cls.add_method('SetTxCurrentA', 
-                   'void', 
-                   [param('double', 'txCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3AcousticModemEnergyModel_methods(root_module, cls):
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel(ns3::AcousticModemEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AcousticModemEnergyModel const &', 'arg0')])
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: int ns3::AcousticModemEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetIdlePowerW() const [member function]
-    cls.add_method('GetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: ns3::Ptr<ns3::Node> ns3::AcousticModemEnergyModel::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetRxPowerW() const [member function]
-    cls.add_method('GetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetSleepPowerW() const [member function]
-    cls.add_method('GetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTxPowerW() const [member function]
-    cls.add_method('GetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: static ns3::TypeId ns3::AcousticModemEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('SetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('SetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('SetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetTxPowerW(double txPowerW) [member function]
-    cls.add_method('SetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicEnergySource_methods(root_module, cls):
-    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
-    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
-    cls.add_constructor([])
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
-    cls.add_method('SetInitialEnergy', 
-                   'void', 
-                   [param('double', 'initialEnergyJ')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
-    cls.add_method('SetSupplyVoltage', 
-                   'void', 
-                   [param('double', 'supplyVoltageV')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BridgeChannel_methods(root_module, cls):
-    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel(ns3::BridgeChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeChannel const &', 'arg0')])
-    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel() [constructor]
-    cls.add_constructor([])
-    ## bridge-channel.h: void ns3::BridgeChannel::AddChannel(ns3::Ptr<ns3::Channel> bridgedChannel) [member function]
-    cls.add_method('AddChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Channel >', 'bridgedChannel')])
-    ## bridge-channel.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeChannel::GetDevice(uint32_t i) const [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-channel.h: uint32_t ns3::BridgeChannel::GetNDevices() const [member function]
-    cls.add_method('GetNDevices', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-channel.h: static ns3::TypeId ns3::BridgeChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3BridgeNetDevice_methods(root_module, cls):
-    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice(ns3::BridgeNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeNetDevice const &', 'arg0')])
-    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice() [constructor]
-    cls.add_constructor([])
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddBridgePort(ns3::Ptr<ns3::NetDevice> bridgePort) [member function]
-    cls.add_method('AddBridgePort', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'bridgePort')])
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetBridgePort(uint32_t n) const [member function]
-    cls.add_method('GetBridgePort', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::Channel> ns3::BridgeNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint16_t ns3::BridgeNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetNBridgePorts() const [member function]
-    cls.add_method('GetNBridgePorts', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::Node> ns3::BridgeNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: static ns3::TypeId ns3::BridgeNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardBroadcast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
-    cls.add_method('ForwardBroadcast', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardUnicast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
-    cls.add_method('ForwardUnicast', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
-                   visibility='protected')
-    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetLearnedState(ns3::Mac48Address source) [member function]
-    cls.add_method('GetLearnedState', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('ns3::Mac48Address', 'source')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::Learn(ns3::Mac48Address source, ns3::Ptr<ns3::NetDevice> port) [member function]
-    cls.add_method('Learn', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'source'), param('ns3::Ptr< ns3::NetDevice >', 'port')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ReceiveFromDevice(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
-    cls.add_method('ReceiveFromDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')], 
-                   visibility='protected')
-    return
-
-def register_Ns3CqiIdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage(ns3::CqiIdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::CqiIdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: void ns3::CqiIdealControlMessage::AddNewRecord(int subChannel, double cqi) [member function]
-    cls.add_method('AddNewRecord', 
-                   'void', 
-                   [param('int', 'subChannel'), param('double', 'cqi')])
-    ## ideal-control-messages.h: std::list<ns3::CqiIdealControlMessage::CqiFeedback,std::allocator<ns3::CqiIdealControlMessage::CqiFeedback> > * ns3::CqiIdealControlMessage::GetMessage() [member function]
-    cls.add_method('GetMessage', 
-                   'std::list< ns3::CqiIdealControlMessage::CqiFeedback > *', 
-                   [])
-    return
-
-def register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback(ns3::CqiIdealControlMessage::CqiFeedback const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::CqiIdealControlMessage::CqiFeedback const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_cqi [variable]
-    cls.add_instance_attribute('m_cqi', 'double', is_const=False)
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_idSubChannel [variable]
-    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
-    return
-
-def register_Ns3EnbLtePhy_methods(root_module, cls):
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::EnbLtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbLtePhy const &', 'arg0')])
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy() [constructor]
-    cls.add_constructor([])
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## enb-phy.h: void ns3::EnbLtePhy::CalcChannelQualityForUe(std::vector<double, std::allocator<double> > sinr, ns3::Ptr<ns3::LteSpectrumPhy> ue) [member function]
-    cls.add_method('CalcChannelQualityForUe', 
-                   'void', 
-                   [param('std::vector< double >', 'sinr'), param('ns3::Ptr< ns3::LteSpectrumPhy >', 'ue')])
-    ## enb-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::EnbLtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::DoSetDownlinkSubChannels() [member function]
-    cls.add_method('DoSetDownlinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::EndFrame() [member function]
-    cls.add_method('EndFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: void ns3::EnbLtePhy::EndSubFrame() [member function]
-    cls.add_method('EndSubFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: static ns3::TypeId ns3::EnbLtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## enb-phy.h: bool ns3::EnbLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::StartFrame() [member function]
-    cls.add_method('StartFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: void ns3::EnbLtePhy::StartSubFrame() [member function]
-    cls.add_method('StartSubFrame', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3EnbLteSpectrumPhy_methods(root_module, cls):
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy(ns3::EnbLteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbLteSpectrumPhy const &', 'arg0')])
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## enb-lte-spectrum-phy.h: void ns3::EnbLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_virtual=True)
-    ## enb-lte-spectrum-phy.h: static ns3::TypeId ns3::EnbLteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3EnbMacEntity_methods(root_module, cls):
-    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity(ns3::EnbMacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbMacEntity const &', 'arg0')])
-    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity() [constructor]
-    cls.add_constructor([])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetDownlinkPacketScheduler() [member function]
-    cls.add_method('GetDownlinkPacketScheduler', 
-                   'ns3::Ptr< ns3::PacketScheduler >', 
-                   [])
-    ## enb-mac-entity.h: static ns3::TypeId ns3::EnbMacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetUplinkPacketScheduler() [member function]
-    cls.add_method('GetUplinkPacketScheduler', 
-                   'ns3::Ptr< ns3::PacketScheduler >', 
-                   [])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::ReceiveCqiIdealControlMessage(ns3::Ptr<ns3::CqiIdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveCqiIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::CqiIdealControlMessage >', 'msg')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SendPdcchMapIdealControlMessage(ns3::Ptr<ns3::PdcchMapIdealControlMessage> msg) [member function]
-    cls.add_method('SendPdcchMapIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PdcchMapIdealControlMessage >', 'msg')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetDownlinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
-    cls.add_method('SetDownlinkPacketScheduler', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetUplinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
-    cls.add_method('SetUplinkPacketScheduler', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
-    return
-
-def register_Ns3Ipv4GlobalRouting_methods(root_module, cls):
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting(ns3::Ipv4GlobalRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4GlobalRouting const &', 'arg0')])
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddASExternalRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddASExternalRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: uint32_t ns3::Ipv4GlobalRouting::GetNRoutes() const [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-global-routing.h: ns3::Ipv4RoutingTableEntry * ns3::Ipv4GlobalRouting::GetRoute(uint32_t i) const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv4RoutingTableEntry *', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-global-routing.h: static ns3::TypeId ns3::Ipv4GlobalRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv4-global-routing.h: bool ns3::Ipv4GlobalRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4GlobalRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv4ListRouting_methods(root_module, cls):
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting(ns3::Ipv4ListRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4ListRouting const &', 'arg0')])
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol, int16_t priority) [member function]
-    cls.add_method('AddRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: uint32_t ns3::Ipv4ListRouting::GetNRoutingProtocols() const [member function]
-    cls.add_method('GetNRoutingProtocols', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('uint32_t', 'index'), param('int16_t &', 'priority', direction=2)], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: static ns3::TypeId ns3::Ipv4ListRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv6ListRouting_methods(root_module, cls):
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting(ns3::Ipv6ListRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6ListRouting const &', 'arg0')])
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv6RoutingProtocol> routingProtocol, int16_t priority) [member function]
-    cls.add_method('AddRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: uint32_t ns3::Ipv6ListRouting::GetNRoutingProtocols() const [member function]
-    cls.add_method('GetNRoutingProtocols', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('uint32_t', 'index'), param('int16_t &', 'priority')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing.h: static ns3::TypeId ns3::Ipv6ListRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyAddRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyRemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: bool ns3::Ipv6ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv6Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
-    cls.add_method('SetIpv6', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3LteNetDevice_methods(root_module, cls):
-    ## lte-net-device.h: static ns3::TypeId ns3::LteNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-net-device.h: ns3::LteNetDevice::LteNetDevice() [constructor]
-    cls.add_constructor([])
-    ## lte-net-device.h: void ns3::LteNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPhyMacTxStartCallback(ns3::PhyMacTxStartCallback c) [member function]
-    cls.add_method('SetPhyMacTxStartCallback', 
-                   'void', 
-                   [param('ns3::PhyMacTxStartCallback', 'c')])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## lte-net-device.h: ns3::Ptr<ns3::LtePhy> ns3::LteNetDevice::GetPhy() const [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::LtePhy >', 
-                   [], 
-                   is_const=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetRrcEntity(ns3::Ptr<ns3::RrcEntity> rrc) [member function]
-    cls.add_method('SetRrcEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RrcEntity >', 'rrc')])
-    ## lte-net-device.h: ns3::Ptr<ns3::RrcEntity> ns3::LteNetDevice::GetRrcEntity() [member function]
-    cls.add_method('GetRrcEntity', 
-                   'ns3::Ptr< ns3::RrcEntity >', 
-                   [])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## lte-net-device.h: uint32_t ns3::LteNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Ptr<ns3::Channel> ns3::LteNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## lte-net-device.h: uint16_t ns3::LteNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Ptr<ns3::Node> ns3::LteNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv4Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Receive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')])
-    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest')])
-    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPacketToSend(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SetPacketToSend', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')])
-    ## lte-net-device.h: ns3::Ptr<ns3::PacketBurst> ns3::LteNetDevice::GetPacketToSend() [member function]
-    cls.add_method('GetPacketToSend', 
-                   'ns3::Ptr< ns3::PacketBurst >', 
-                   [])
-    ## lte-net-device.h: void ns3::LteNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UeNetDevice_methods(root_module, cls):
-    ## ue-net-device.h: static ns3::TypeId ns3::UeNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice() [constructor]
-    cls.add_constructor([])
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::EnbNetDevice> targetEnb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::EnbNetDevice >', 'targetEnb')])
-    ## ue-net-device.h: void ns3::UeNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::SetMacEntity(ns3::Ptr<ns3::UeMacEntity> m) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeMacEntity >', 'm')])
-    ## ue-net-device.h: ns3::Ptr<ns3::UeMacEntity> ns3::UeNetDevice::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::UeMacEntity >', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::InitUeNetDevice() [member function]
-    cls.add_method('InitUeNetDevice', 
-                   'void', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::SetTargetEnb(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('SetTargetEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## ue-net-device.h: ns3::Ptr<ns3::EnbNetDevice> ns3::UeNetDevice::GetTargetEnb() [member function]
-    cls.add_method('GetTargetEnb', 
-                   'ns3::Ptr< ns3::EnbNetDevice >', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: bool ns3::UeNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_virtual=True)
-    ## ue-net-device.h: bool ns3::UeNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   visibility='private', is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnbNetDevice_methods(root_module, cls):
-    ## enb-net-device.h: static ns3::TypeId ns3::EnbNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice() [constructor]
-    cls.add_constructor([])
-    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## enb-net-device.h: void ns3::EnbNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::InitEnbNetDevice() [member function]
-    cls.add_method('InitEnbNetDevice', 
-                   'void', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::SetUeManager(ns3::Ptr<ns3::UeManager> m) [member function]
-    cls.add_method('SetUeManager', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeManager >', 'm')])
-    ## enb-net-device.h: ns3::Ptr<ns3::UeManager> ns3::EnbNetDevice::GetUeManager() [member function]
-    cls.add_method('GetUeManager', 
-                   'ns3::Ptr< ns3::UeManager >', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::SetMacEntity(ns3::Ptr<ns3::EnbMacEntity> m) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbMacEntity >', 'm')])
-    ## enb-net-device.h: ns3::Ptr<ns3::EnbMacEntity> ns3::EnbNetDevice::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::EnbMacEntity >', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: bool ns3::EnbNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::SendIdealPdcchMessage() [member function]
-    cls.add_method('SendIdealPdcchMessage', 
-                   'void', 
-                   [])
-    ## enb-net-device.h: bool ns3::EnbNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   visibility='private', is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DsdvDsdvHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::dsdv::DsdvHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::DsdvHeader const &', 'arg0')])
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::Ipv4Address dst=ns3::Ipv4Address(), uint32_t hopcount=0, uint32_t dstSeqNo=0) [constructor]
-    cls.add_constructor([param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('uint32_t', 'hopcount', default_value='0'), param('uint32_t', 'dstSeqNo', default_value='0')])
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## dsdv-packet.h: ns3::Ipv4Address ns3::dsdv::DsdvHeader::GetDst() const [member function]
-    cls.add_method('GetDst', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetDstSeqno() const [member function]
-    cls.add_method('GetDstSeqno', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetHopCount() const [member function]
-    cls.add_method('GetHopCount', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: ns3::TypeId ns3::dsdv::DsdvHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: static ns3::TypeId ns3::dsdv::DsdvHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDst(ns3::Ipv4Address destination) [member function]
-    cls.add_method('SetDst', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'destination')])
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDstSeqno(uint32_t sequenceNumber) [member function]
-    cls.add_method('SetDstSeqno', 
-                   'void', 
-                   [param('uint32_t', 'sequenceNumber')])
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetHopCount(uint32_t hopCount) [member function]
-    cls.add_method('SetHopCount', 
-                   'void', 
-                   [param('uint32_t', 'hopCount')])
-    return
-
-def register_Ns3DsdvPacketQueue_methods(root_module, cls):
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue(ns3::dsdv::PacketQueue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::PacketQueue const &', 'arg0')])
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue() [constructor]
-    cls.add_constructor([])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Dequeue(ns3::Ipv4Address dst, ns3::dsdv::QueueEntry & entry) [member function]
-    cls.add_method('Dequeue', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::QueueEntry &', 'entry')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::DropPacketWithDst(ns3::Ipv4Address dst) [member function]
-    cls.add_method('DropPacketWithDst', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Enqueue(ns3::dsdv::QueueEntry & entry) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::dsdv::QueueEntry &', 'entry')])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Find(ns3::Ipv4Address dst) [member function]
-    cls.add_method('Find', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetCountForPacketsWithDst(ns3::Ipv4Address dst) [member function]
-    cls.add_method('GetCountForPacketsWithDst', 
-                   'uint32_t', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxPacketsPerDst() const [member function]
-    cls.add_method('GetMaxPacketsPerDst', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxQueueLen() const [member function]
-    cls.add_method('GetMaxQueueLen', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::PacketQueue::GetQueueTimeout() const [member function]
-    cls.add_method('GetQueueTimeout', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetSize() [member function]
-    cls.add_method('GetSize', 
-                   'uint32_t', 
-                   [])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxPacketsPerDst(uint32_t len) [member function]
-    cls.add_method('SetMaxPacketsPerDst', 
-                   'void', 
-                   [param('uint32_t', 'len')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxQueueLen(uint32_t len) [member function]
-    cls.add_method('SetMaxQueueLen', 
-                   'void', 
-                   [param('uint32_t', 'len')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetQueueTimeout(ns3::Time t) [member function]
-    cls.add_method('SetQueueTimeout', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    return
-
-def register_Ns3DsdvQueueEntry_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::dsdv::QueueEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::QueueEntry const &', 'arg0')])
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::Ptr<ns3::Packet const> pa=0, ns3::Ipv4Header const & h=ns3::Ipv4Header(), ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb=ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>(), ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb=ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Packet const >', 'pa', default_value='0'), param('ns3::Ipv4Header const &', 'h', default_value='ns3::Ipv4Header()'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb', default_value='ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb', default_value='ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()')])
-    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetErrorCallback() const [member function]
-    cls.add_method('GetErrorCallback', 
-                   'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::QueueEntry::GetExpireTime() const [member function]
-    cls.add_method('GetExpireTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Ipv4Header ns3::dsdv::QueueEntry::GetIpv4Header() const [member function]
-    cls.add_method('GetIpv4Header', 
-                   'ns3::Ipv4Header', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Ptr<ns3::Packet const> ns3::dsdv::QueueEntry::GetPacket() const [member function]
-    cls.add_method('GetPacket', 
-                   'ns3::Ptr< ns3::Packet const >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetUnicastForwardCallback() const [member function]
-    cls.add_method('GetUnicastForwardCallback', 
-                   'ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('SetErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetExpireTime(ns3::Time exp) [member function]
-    cls.add_method('SetExpireTime', 
-                   'void', 
-                   [param('ns3::Time', 'exp')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetIpv4Header(ns3::Ipv4Header h) [member function]
-    cls.add_method('SetIpv4Header', 
-                   'void', 
-                   [param('ns3::Ipv4Header', 'h')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetPacket(ns3::Ptr<ns3::Packet const> p) [member function]
-    cls.add_method('SetPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetUnicastForwardCallback(ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb) [member function]
-    cls.add_method('SetUnicastForwardCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb')])
-    return
-
-def register_Ns3DsdvRoutingProtocol_methods(root_module, cls):
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol(ns3::dsdv::RoutingProtocol const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingProtocol const &', 'arg0')])
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol() [constructor]
-    cls.add_constructor([])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableBufferFlag() const [member function]
-    cls.add_method('GetEnableBufferFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableRAFlag() const [member function]
-    cls.add_method('GetEnableRAFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: static ns3::TypeId ns3::dsdv::RoutingProtocol::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetWSTFlag() const [member function]
-    cls.add_method('GetWSTFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableBufferFlag(bool f) [member function]
-    cls.add_method('SetEnableBufferFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableRAFlag(bool f) [member function]
-    cls.add_method('SetEnableRAFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetWSTFlag(bool f) [member function]
-    cls.add_method('SetWSTFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::DSDV_PORT [variable]
-    cls.add_static_attribute('DSDV_PORT', 'uint32_t const', is_const=True)
-    return
-
-def register_Ns3DsdvRoutingTable_methods(root_module, cls):
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable(ns3::dsdv::RoutingTable const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingTable const &', 'arg0')])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable() [constructor]
-    cls.add_constructor([])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddIpv4Event(ns3::Ipv4Address arg0, ns3::EventId arg1) [member function]
-    cls.add_method('AddIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'arg0'), param('ns3::EventId', 'arg1')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddRoute(ns3::dsdv::RoutingTableEntry & r) [member function]
-    cls.add_method('AddRoute', 
-                   'bool', 
-                   [param('ns3::dsdv::RoutingTableEntry &', 'r')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AnyRunningEvent(ns3::Ipv4Address address) [member function]
-    cls.add_method('AnyRunningEvent', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::DeleteAllRoutesFromInterface(ns3::Ipv4InterfaceAddress iface) [member function]
-    cls.add_method('DeleteAllRoutesFromInterface', 
-                   'void', 
-                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteIpv4Event(ns3::Ipv4Address address) [member function]
-    cls.add_method('DeleteIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteRoute(ns3::Ipv4Address dst) [member function]
-    cls.add_method('DeleteRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::ForceDeleteIpv4Event(ns3::Ipv4Address address) [member function]
-    cls.add_method('ForceDeleteIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: ns3::EventId ns3::dsdv::RoutingTable::GetEventId(ns3::Ipv4Address address) [member function]
-    cls.add_method('GetEventId', 
-                   'ns3::EventId', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfAllRoutes(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & allRoutes) [member function]
-    cls.add_method('GetListOfAllRoutes', 
-                   'void', 
-                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'allRoutes')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfDestinationWithNextHop(ns3::Ipv4Address nxtHp, std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & dstList) [member function]
-    cls.add_method('GetListOfDestinationWithNextHop', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nxtHp'), param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'dstList')])
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTable::Getholddowntime() const [member function]
-    cls.add_method('Getholddowntime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address dst, ns3::dsdv::RoutingTableEntry & rt) [member function]
-    cls.add_method('LookupRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::RoutingTableEntry &', 'rt')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address id, ns3::dsdv::RoutingTableEntry & rt, bool forRouteInput) [member function]
-    cls.add_method('LookupRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'id'), param('ns3::dsdv::RoutingTableEntry &', 'rt'), param('bool', 'forRouteInput')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Purge(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & removedAddresses) [member function]
-    cls.add_method('Purge', 
-                   'void', 
-                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'removedAddresses')])
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTable::RoutingTableSize() [member function]
-    cls.add_method('RoutingTableSize', 
-                   'uint32_t', 
-                   [])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Setholddowntime(ns3::Time t) [member function]
-    cls.add_method('Setholddowntime', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::Update(ns3::dsdv::RoutingTableEntry & rt) [member function]
-    cls.add_method('Update', 
-                   'bool', 
-                   [param('ns3::dsdv::RoutingTableEntry &', 'rt')])
-    return
-
-def register_Ns3DsdvRoutingTableEntry_methods(root_module, cls):
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::dsdv::RoutingTableEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingTableEntry const &', 'arg0')])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::Ptr<ns3::NetDevice> dev=0, ns3::Ipv4Address dst=ns3::Ipv4Address(), u_int32_t m_seqNo=0, ns3::Ipv4InterfaceAddress iface=ns3::Ipv4InterfaceAddress(), u_int32_t hops=0, ns3::Ipv4Address nextHop=ns3::Ipv4Address(), ns3::Time lifetime=ns3::Simulator::Now( ), ns3::Time SettlingTime=ns3::Simulator::Now( ), bool changedEntries=false) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'dev', default_value='0'), param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('u_int32_t', 'm_seqNo', default_value='0'), param('ns3::Ipv4InterfaceAddress', 'iface', default_value='ns3::Ipv4InterfaceAddress()'), param('u_int32_t', 'hops', default_value='0'), param('ns3::Ipv4Address', 'nextHop', default_value='ns3::Ipv4Address()'), param('ns3::Time', 'lifetime', default_value='ns3::Simulator::Now( )'), param('ns3::Time', 'SettlingTime', default_value='ns3::Simulator::Now( )'), param('bool', 'changedEntries', default_value='false')])
-    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetDestination() const [member function]
-    cls.add_method('GetDestination', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTableEntry::GetEntriesChanged() const [member function]
-    cls.add_method('GetEntriesChanged', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::dsdv::RouteFlags ns3::dsdv::RoutingTableEntry::GetFlag() const [member function]
-    cls.add_method('GetFlag', 
-                   'ns3::dsdv::RouteFlags', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetHop() const [member function]
-    cls.add_method('GetHop', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ipv4InterfaceAddress ns3::dsdv::RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'ns3::Ipv4InterfaceAddress', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetLifeTime() const [member function]
-    cls.add_method('GetLifeTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetNextHop() const [member function]
-    cls.add_method('GetNextHop', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ptr<ns3::NetDevice> ns3::dsdv::RoutingTableEntry::GetOutputDevice() const [member function]
-    cls.add_method('GetOutputDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingTableEntry::GetRoute() const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetSeqNo() const [member function]
-    cls.add_method('GetSeqNo', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetSettlingTime() const [member function]
-    cls.add_method('GetSettlingTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetEntriesChanged(bool entriesChanged) [member function]
-    cls.add_method('SetEntriesChanged', 
-                   'void', 
-                   [param('bool', 'entriesChanged')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetFlag(ns3::dsdv::RouteFlags flag) [member function]
-    cls.add_method('SetFlag', 
-                   'void', 
-                   [param('ns3::dsdv::RouteFlags', 'flag')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetHop(uint32_t hopCount) [member function]
-    cls.add_method('SetHop', 
-                   'void', 
-                   [param('uint32_t', 'hopCount')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetInterface(ns3::Ipv4InterfaceAddress iface) [member function]
-    cls.add_method('SetInterface', 
-                   'void', 
-                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetLifeTime(ns3::Time lifeTime) [member function]
-    cls.add_method('SetLifeTime', 
-                   'void', 
-                   [param('ns3::Time', 'lifeTime')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetNextHop(ns3::Ipv4Address nextHop) [member function]
-    cls.add_method('SetNextHop', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nextHop')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetOutputDevice(ns3::Ptr<ns3::NetDevice> device) [member function]
-    cls.add_method('SetOutputDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetRoute(ns3::Ptr<ns3::Ipv4Route> route) [member function]
-    cls.add_method('SetRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSeqNo(uint32_t sequenceNumber) [member function]
-    cls.add_method('SetSeqNo', 
-                   'void', 
-                   [param('uint32_t', 'sequenceNumber')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSettlingTime(ns3::Time settlingTime) [member function]
-    cls.add_method('SetSettlingTime', 
-                   'void', 
-                   [param('ns3::Time', 'settlingTime')])
-    return
-
-def register_Ns3OlsrAssociation_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::Association::Association() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::Association::Association(ns3::olsr::Association const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::Association const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::Association::netmask [variable]
-    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::Association::networkAddr [variable]
-    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrAssociationTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple(ns3::olsr::AssociationTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::AssociationTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::gatewayAddr [variable]
-    cls.add_instance_attribute('gatewayAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::netmask [variable]
-    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::networkAddr [variable]
-    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrDuplicateTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple(ns3::olsr::DuplicateTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::DuplicateTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::address [variable]
-    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::ifaceList [variable]
-    cls.add_instance_attribute('ifaceList', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::retransmitted [variable]
-    cls.add_instance_attribute('retransmitted', 'bool', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::sequenceNumber [variable]
-    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3OlsrIfaceAssocTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::IfaceAssocTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::ifaceAddr [variable]
-    cls.add_instance_attribute('ifaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::mainAddr [variable]
-    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3OlsrLinkTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple(ns3::olsr::LinkTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::LinkTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::asymTime [variable]
-    cls.add_instance_attribute('asymTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::localIfaceAddr [variable]
-    cls.add_instance_attribute('localIfaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::neighborIfaceAddr [variable]
-    cls.add_instance_attribute('neighborIfaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::symTime [variable]
-    cls.add_instance_attribute('symTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader(ns3::olsr::MessageHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello & ns3::olsr::MessageHeader::GetHello() [member function]
-    cls.add_method('GetHello', 
-                   'ns3::olsr::MessageHeader::Hello &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello const & ns3::olsr::MessageHeader::GetHello() const [member function]
-    cls.add_method('GetHello', 
-                   'ns3::olsr::MessageHeader::Hello const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna & ns3::olsr::MessageHeader::GetHna() [member function]
-    cls.add_method('GetHna', 
-                   'ns3::olsr::MessageHeader::Hna &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna const & ns3::olsr::MessageHeader::GetHna() const [member function]
-    cls.add_method('GetHna', 
-                   'ns3::olsr::MessageHeader::Hna const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetHopCount() const [member function]
-    cls.add_method('GetHopCount', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::TypeId ns3::olsr::MessageHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: uint16_t ns3::olsr::MessageHeader::GetMessageSequenceNumber() const [member function]
-    cls.add_method('GetMessageSequenceNumber', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType ns3::olsr::MessageHeader::GetMessageType() const [member function]
-    cls.add_method('GetMessageType', 
-                   'ns3::olsr::MessageHeader::MessageType', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid & ns3::olsr::MessageHeader::GetMid() [member function]
-    cls.add_method('GetMid', 
-                   'ns3::olsr::MessageHeader::Mid &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid const & ns3::olsr::MessageHeader::GetMid() const [member function]
-    cls.add_method('GetMid', 
-                   'ns3::olsr::MessageHeader::Mid const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::Ipv4Address ns3::olsr::MessageHeader::GetOriginatorAddress() const [member function]
-    cls.add_method('GetOriginatorAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc & ns3::olsr::MessageHeader::GetTc() [member function]
-    cls.add_method('GetTc', 
-                   'ns3::olsr::MessageHeader::Tc &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc const & ns3::olsr::MessageHeader::GetTc() const [member function]
-    cls.add_method('GetTc', 
-                   'ns3::olsr::MessageHeader::Tc const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetTimeToLive() const [member function]
-    cls.add_method('GetTimeToLive', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: static ns3::TypeId ns3::olsr::MessageHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::GetVTime() const [member function]
-    cls.add_method('GetVTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetHopCount(uint8_t hopCount) [member function]
-    cls.add_method('SetHopCount', 
-                   'void', 
-                   [param('uint8_t', 'hopCount')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageSequenceNumber(uint16_t messageSequenceNumber) [member function]
-    cls.add_method('SetMessageSequenceNumber', 
-                   'void', 
-                   [param('uint16_t', 'messageSequenceNumber')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageType(ns3::olsr::MessageHeader::MessageType messageType) [member function]
-    cls.add_method('SetMessageType', 
-                   'void', 
-                   [param('ns3::olsr::MessageHeader::MessageType', 'messageType')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetOriginatorAddress(ns3::Ipv4Address originatorAddress) [member function]
-    cls.add_method('SetOriginatorAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'originatorAddress')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetTimeToLive(uint8_t timeToLive) [member function]
-    cls.add_method('SetTimeToLive', 
-                   'void', 
-                   [param('uint8_t', 'timeToLive')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetVTime(ns3::Time time) [member function]
-    cls.add_method('SetVTime', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    return
-
-def register_Ns3OlsrMessageHeaderHello_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello(ns3::olsr::MessageHeader::Hello const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::Hello::GetHTime() const [member function]
-    cls.add_method('GetHTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::SetHTime(ns3::Time time) [member function]
-    cls.add_method('SetHTime', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::hTime [variable]
-    cls.add_instance_attribute('hTime', 'uint8_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::linkMessages [variable]
-    cls.add_instance_attribute('linkMessages', 'std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::willingness [variable]
-    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage(ns3::olsr::MessageHeader::Hello::LinkMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello::LinkMessage const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::linkCode [variable]
-    cls.add_instance_attribute('linkCode', 'uint8_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses [variable]
-    cls.add_instance_attribute('neighborInterfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHna_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna(ns3::olsr::MessageHeader::Hna const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::associations [variable]
-    cls.add_instance_attribute('associations', 'std::vector< ns3::olsr::MessageHeader::Hna::Association >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association(ns3::olsr::MessageHeader::Hna::Association const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna::Association const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::address [variable]
-    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::mask [variable]
-    cls.add_instance_attribute('mask', 'ns3::Ipv4Mask', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderMid_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid(ns3::olsr::MessageHeader::Mid const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Mid const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::interfaceAddresses [variable]
-    cls.add_instance_attribute('interfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderTc_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc(ns3::olsr::MessageHeader::Tc const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Tc const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::ansn [variable]
-    cls.add_instance_attribute('ansn', 'uint16_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::neighborAddresses [variable]
-    cls.add_instance_attribute('neighborAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMprSelectorTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple(ns3::olsr::MprSelectorTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MprSelectorTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::mainAddr [variable]
-    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrNeighborTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple(ns3::olsr::NeighborTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::NeighborTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::neighborMainAddr [variable]
-    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::status [variable]
-    cls.add_instance_attribute('status', 'ns3::olsr::NeighborTuple::Status', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::willingness [variable]
-    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
-    return
-
-def register_Ns3OlsrOlsrMprTestCase_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase::OlsrMprTestCase() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: void ns3::olsr::OlsrMprTestCase::DoRun() [member function]
-    cls.add_method('DoRun', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    return
-
-def register_Ns3OlsrPacketHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader(ns3::olsr::PacketHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::PacketHeader const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## olsr-header.h: ns3::TypeId ns3::olsr::PacketHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketLength() const [member function]
-    cls.add_method('GetPacketLength', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketSequenceNumber() const [member function]
-    cls.add_method('GetPacketSequenceNumber', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: static ns3::TypeId ns3::olsr::PacketHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketLength(uint16_t length) [member function]
-    cls.add_method('SetPacketLength', 
-                   'void', 
-                   [param('uint16_t', 'length')])
-    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketSequenceNumber(uint16_t seqnum) [member function]
-    cls.add_method('SetPacketSequenceNumber', 
-                   'void', 
-                   [param('uint16_t', 'seqnum')])
-    return
-
-def register_Ns3OlsrRoutingProtocol_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol(ns3::olsr::RoutingProtocol const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::RoutingProtocol const &', 'arg0')])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::AddHostNetworkAssociation(ns3::Ipv4Address networkAddr, ns3::Ipv4Mask netmask) [member function]
-    cls.add_method('AddHostNetworkAssociation', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'networkAddr'), param('ns3::Ipv4Mask', 'netmask')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::Dump() [member function]
-    cls.add_method('Dump', 
-                   'void', 
-                   [])
-    ## olsr-routing-protocol.h: std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > ns3::olsr::RoutingProtocol::GetInterfaceExclusions() const [member function]
-    cls.add_method('GetInterfaceExclusions', 
-                   'std::set< unsigned int >', 
-                   [], 
-                   is_const=True)
-    ## olsr-routing-protocol.h: std::vector<ns3::olsr::RoutingTableEntry,std::allocator<ns3::olsr::RoutingTableEntry> > ns3::olsr::RoutingProtocol::GetRoutingTableEntries() const [member function]
-    cls.add_method('GetRoutingTableEntries', 
-                   'std::vector< ns3::olsr::RoutingTableEntry >', 
-                   [], 
-                   is_const=True)
-    ## olsr-routing-protocol.h: static ns3::TypeId ns3::olsr::RoutingProtocol::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetInterfaceExclusions(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > exceptions) [member function]
-    cls.add_method('SetInterfaceExclusions', 
-                   'void', 
-                   [param('std::set< unsigned int >', 'exceptions')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetMainInterface(uint32_t interface) [member function]
-    cls.add_method('SetMainInterface', 
-                   'void', 
-                   [param('uint32_t', 'interface')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetRoutingTableAssociation(ns3::Ptr<ns3::Ipv4StaticRouting> routingTable) [member function]
-    cls.add_method('SetRoutingTableAssociation', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4StaticRouting >', 'routingTable')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::olsr::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3OlsrRoutingTableEntry_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry(ns3::olsr::RoutingTableEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::RoutingTableEntry const &', 'arg0')])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::destAddr [variable]
-    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::distance [variable]
-    cls.add_instance_attribute('distance', 'uint32_t', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::interface [variable]
-    cls.add_instance_attribute('interface', 'uint32_t', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::nextAddr [variable]
-    cls.add_instance_attribute('nextAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrTopologyTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple(ns3::olsr::TopologyTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::TopologyTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::destAddr [variable]
-    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::lastAddr [variable]
-    cls.add_instance_attribute('lastAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::sequenceNumber [variable]
-    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::TwoHopNeighborTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::neighborMainAddr [variable]
-    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::twoHopNeighborAddr [variable]
-    cls.add_instance_attribute('twoHopNeighborAddr', 'ns3::Ipv4Address', is_const=False)
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_methods(root_module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_methods(root_module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_static_routing')
     return
 
 def register_functions(root_module):
@@ -10274,17 +1182,6 @@
         ns3_module_core__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_functions(root_module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_functions(root_module)
     
@@ -10417,28 +1314,6 @@
         ns3_module_emu__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_functions(root_module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_functions(root_module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_functions(root_module)
     
@@ -10450,17 +1325,6 @@
         ns3_module_internet_stack__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_functions(root_module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_functions(root_module)
     
@@ -10494,28 +1358,17 @@
         ns3_module_point_to_point__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_functions(root_module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_functions(root_module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_functions(root_module)
+        ns3_module_propagation__local.register_functions(root_module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_functions(root_module)
     
@@ -10593,17 +1446,6 @@
         ns3_module_wimax__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_functions(root_module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_functions(root_module)
     
@@ -10637,17 +1479,6 @@
         ns3_module_nix_vector_routing__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_functions(root_module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_functions(root_module)
     
@@ -10692,17 +1523,28 @@
         ns3_module_udp_echo__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_functions(root_module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_functions(root_module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_functions(root_module)
+        ns3_module_spectrum__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_functions(root_module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_functions(root_module)
     
@@ -10725,6 +1567,28 @@
         ns3_module_helper__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_functions(root_module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_functions(root_module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_functions(root_module)
     
@@ -10747,10 +1611,61 @@
         ns3_module_flame__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_flame')
-    ## uan-tx-mode.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeUanModesListChecker() [free function]
-    module.add_function('MakeUanModesListChecker', 
-                        'ns3::Ptr< ns3::AttributeChecker const >', 
-                        [])
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_functions(root_module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_functions(root_module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_static_routing')
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
@@ -10787,14 +1702,6 @@
     return
 
 def register_functions_ns3_olsr(module, root_module):
-    ## olsr-header.h: extern double ns3::olsr::EmfToSeconds(uint8_t emf) [free function]
-    module.add_function('EmfToSeconds', 
-                        'double', 
-                        [param('uint8_t', 'emf')])
-    ## olsr-header.h: extern uint8_t ns3::olsr::SecondsToEmf(double seconds) [free function]
-    module.add_function('SecondsToEmf', 
-                        'uint8_t', 
-                        [param('double', 'seconds')])
     return
 
 def main():
--- a/bindings/python/apidefs/gcc-LP64/callbacks_list.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/callbacks_list.py	Tue Feb 08 13:08:45 2011 -0500
@@ -1,6 +1,6 @@
 callback_classes = [
+    ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', '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', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::Address const&', 'ns3::Address const&', 'unsigned short', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_bridge.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_bridge.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,12 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## bridge-helper.h: ns3::BridgeHelper [class]
+    module.add_class('BridgeHelper')
+    ## bridge-channel.h: ns3::BridgeChannel [class]
+    module.add_class('BridgeChannel', parent=root_module['ns3::Channel'])
+    ## bridge-net-device.h: ns3::BridgeNetDevice [class]
+    module.add_class('BridgeNetDevice', parent=root_module['ns3::NetDevice'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +101,230 @@
     
 
 def register_methods(root_module):
+    register_Ns3BridgeHelper_methods(root_module, root_module['ns3::BridgeHelper'])
+    register_Ns3BridgeChannel_methods(root_module, root_module['ns3::BridgeChannel'])
+    register_Ns3BridgeNetDevice_methods(root_module, root_module['ns3::BridgeNetDevice'])
+    return
+
+def register_Ns3BridgeHelper_methods(root_module, cls):
+    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper(ns3::BridgeHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeHelper const &', 'arg0')])
+    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper() [constructor]
+    cls.add_constructor([])
+    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(ns3::Ptr<ns3::Node> node, ns3::NetDeviceContainer c) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::NetDeviceContainer', 'c')])
+    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(std::string nodeName, ns3::NetDeviceContainer c) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName'), param('ns3::NetDeviceContainer', 'c')])
+    ## bridge-helper.h: void ns3::BridgeHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    return
+
+def register_Ns3BridgeChannel_methods(root_module, cls):
+    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel(ns3::BridgeChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeChannel const &', 'arg0')])
+    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel() [constructor]
+    cls.add_constructor([])
+    ## bridge-channel.h: void ns3::BridgeChannel::AddChannel(ns3::Ptr<ns3::Channel> bridgedChannel) [member function]
+    cls.add_method('AddChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Channel >', 'bridgedChannel')])
+    ## bridge-channel.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeChannel::GetDevice(uint32_t i) const [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-channel.h: uint32_t ns3::BridgeChannel::GetNDevices() const [member function]
+    cls.add_method('GetNDevices', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-channel.h: static ns3::TypeId ns3::BridgeChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3BridgeNetDevice_methods(root_module, cls):
+    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice(ns3::BridgeNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BridgeNetDevice const &', 'arg0')])
+    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice() [constructor]
+    cls.add_constructor([])
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddBridgePort(ns3::Ptr<ns3::NetDevice> bridgePort) [member function]
+    cls.add_method('AddBridgePort', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'bridgePort')])
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetBridgePort(uint32_t n) const [member function]
+    cls.add_method('GetBridgePort', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::Channel> ns3::BridgeNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint16_t ns3::BridgeNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetNBridgePorts() const [member function]
+    cls.add_method('GetNBridgePorts', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## bridge-net-device.h: ns3::Ptr<ns3::Node> ns3::BridgeNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: static ns3::TypeId ns3::BridgeNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardBroadcast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
+    cls.add_method('ForwardBroadcast', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardUnicast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
+    cls.add_method('ForwardUnicast', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
+                   visibility='protected')
+    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetLearnedState(ns3::Mac48Address source) [member function]
+    cls.add_method('GetLearnedState', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('ns3::Mac48Address', 'source')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::Learn(ns3::Mac48Address source, ns3::Ptr<ns3::NetDevice> port) [member function]
+    cls.add_method('Learn', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'source'), param('ns3::Ptr< ns3::NetDevice >', 'port')], 
+                   visibility='protected')
+    ## bridge-net-device.h: void ns3::BridgeNetDevice::ReceiveFromDevice(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('ReceiveFromDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')], 
+                   visibility='protected')
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_common.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_common.py	Tue Feb 08 13:08:45 2011 -0500
@@ -5,8 +5,6 @@
     
     ## error-model.h: ns3::ErrorUnit [enumeration]
     module.add_enum('ErrorUnit', ['EU_BIT', 'EU_BYTE', 'EU_PKT'])
-    ## spectrum-model.h: ns3::BandInfo [struct]
-    module.add_class('BandInfo')
     ## buffer.h: ns3::Buffer [class]
     module.add_class('Buffer')
     ## buffer.h: ns3::Buffer::Iterator [class]
@@ -43,10 +41,6 @@
     module.add_class('PcapFile')
     ## sequence-number.h: ns3::SequenceNumber<unsigned int, int> [class]
     module.add_class('SequenceNumber32')
-    ## spectrum-type.h: ns3::SpectrumType [class]
-    module.add_class('SpectrumType')
-    ## spectrum-type.h: ns3::SpectrumTypeFactory [class]
-    module.add_class('SpectrumTypeFactory')
     ## tag.h: ns3::Tag [class]
     module.add_class('Tag', parent=root_module['ns3::ObjectBase'])
     ## tag-buffer.h: ns3::TagBuffer [class]
@@ -59,70 +53,22 @@
     module.add_class('PacketBurst', parent=root_module['ns3::Object'])
     ## pcap-file-wrapper.h: ns3::PcapFileWrapper [class]
     module.add_class('PcapFileWrapper', parent=root_module['ns3::Object'])
-    ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
-    module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
-    ## propagation-loss-model.h: ns3::PropagationLossModel [class]
-    module.add_class('PropagationLossModel', parent=root_module['ns3::Object'])
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
-    module.add_class('RandomPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
-    ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
-    module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::RangePropagationLossModel [class]
-    module.add_class('RangePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter<ns3::NixVector>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::OutputStreamWrapper', 'ns3::empty', 'ns3::DefaultDeleter<ns3::OutputStreamWrapper>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Packet>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumConverter', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumConverter>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumModel', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumModel>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## spectrum-converter.h: ns3::SpectrumConverter [class]
-    module.add_class('SpectrumConverter', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> >'])
-    ## spectrum-model.h: ns3::SpectrumModel [class]
-    module.add_class('SpectrumModel', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> >'])
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel [class]
-    module.add_class('SpectrumPropagationLossModel', parent=root_module['ns3::Object'])
-    ## spectrum-value.h: ns3::SpectrumValue [class]
-    module.add_class('SpectrumValue', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> >'])
-    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel [class]
-    module.add_class('ThreeLogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## trailer.h: ns3::Trailer [class]
     module.add_class('Trailer', parent=root_module['ns3::Chunk'])
-    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel [class]
-    module.add_class('TwoRayGroundPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
-    module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel [class]
-    module.add_class('Cost231PropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment [enumeration]
-    module.add_enum('Environment', ['SubUrban', 'MediumCity', 'Metropolitan'], outer_class=root_module['ns3::Cost231PropagationLossModel'])
     ## data-rate.h: ns3::DataRateChecker [class]
     module.add_class('DataRateChecker', parent=root_module['ns3::AttributeChecker'])
     ## data-rate.h: ns3::DataRateValue [class]
     module.add_class('DataRateValue', parent=root_module['ns3::AttributeValue'])
     ## error-model.h: ns3::ErrorModel [class]
     module.add_class('ErrorModel', parent=root_module['ns3::Object'])
-    ## propagation-loss-model.h: ns3::FixedRssLossModel [class]
-    module.add_class('FixedRssLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
-    module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel [class]
-    module.add_class('FriisSpectrumPropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
-    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
-    module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## error-model.h: ns3::ListErrorModel [class]
     module.add_class('ListErrorModel', parent=root_module['ns3::ErrorModel'])
-    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel [class]
-    module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel [class]
-    module.add_class('MatrixPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
-    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel [class]
-    module.add_class('NakagamiPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
     ## nix-vector.h: ns3::NixVector [class]
     module.add_class('NixVector', parent=root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >'])
     ## output-stream-wrapper.h: ns3::OutputStreamWrapper [class]
@@ -133,23 +79,12 @@
     module.add_class('RateErrorModel', parent=root_module['ns3::ErrorModel'])
     ## error-model.h: ns3::ReceiveListErrorModel [class]
     module.add_class('ReceiveListErrorModel', parent=root_module['ns3::ErrorModel'])
-    module.add_container('ns3::SpectrumConverterMap_t', ('unsigned int', 'ns3::SpectrumConverter'), container_type='map')
-    module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >', 'ns3::SequenceNumber16')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >*', 'ns3::SequenceNumber16*')
     typehandlers.add_type_alias('ns3::SequenceNumber< short unsigned int, short int >&', 'ns3::SequenceNumber16&')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >', 'ns3::SequenceNumber32')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >*', 'ns3::SequenceNumber32*')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned int, int >&', 'ns3::SequenceNumber32&')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
-    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', 'ns3::Bands')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', 'ns3::Bands*')
-    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', 'ns3::Bands&')
     
     ## Register a nested module for the namespace Config
     
@@ -242,7 +177,6 @@
     
 
 def register_methods(root_module):
-    register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo'])
     register_Ns3Buffer_methods(root_module, root_module['ns3::Buffer'])
     register_Ns3BufferIterator_methods(root_module, root_module['ns3::Buffer::Iterator'])
     register_Ns3ByteTagIterator_methods(root_module, root_module['ns3::ByteTagIterator'])
@@ -260,39 +194,17 @@
     register_Ns3PacketTagListTagData_methods(root_module, root_module['ns3::PacketTagList::TagData'])
     register_Ns3PcapFile_methods(root_module, root_module['ns3::PcapFile'])
     register_Ns3SequenceNumber32_methods(root_module, root_module['ns3::SequenceNumber32'])
-    register_Ns3SpectrumType_methods(root_module, root_module['ns3::SpectrumType'])
-    register_Ns3SpectrumTypeFactory_methods(root_module, root_module['ns3::SpectrumTypeFactory'])
     register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
     register_Ns3Chunk_methods(root_module, root_module['ns3::Chunk'])
     register_Ns3Header_methods(root_module, root_module['ns3::Header'])
     register_Ns3PacketBurst_methods(root_module, root_module['ns3::PacketBurst'])
     register_Ns3PcapFileWrapper_methods(root_module, root_module['ns3::PcapFileWrapper'])
-    register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel'])
-    register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel'])
-    register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel'])
-    register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel'])
-    register_Ns3RangePropagationLossModel_methods(root_module, root_module['ns3::RangePropagationLossModel'])
-    register_Ns3SpectrumConverter_methods(root_module, root_module['ns3::SpectrumConverter'])
-    register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel'])
-    register_Ns3SpectrumPropagationLossModel_methods(root_module, root_module['ns3::SpectrumPropagationLossModel'])
-    register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue'])
-    register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel'])
     register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer'])
-    register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel'])
-    register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel'])
-    register_Ns3Cost231PropagationLossModel_methods(root_module, root_module['ns3::Cost231PropagationLossModel'])
     register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker'])
     register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue'])
     register_Ns3ErrorModel_methods(root_module, root_module['ns3::ErrorModel'])
-    register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
-    register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
-    register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, root_module['ns3::FriisSpectrumPropagationLossModel'])
-    register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
     register_Ns3ListErrorModel_methods(root_module, root_module['ns3::ListErrorModel'])
-    register_Ns3LogDistancePropagationLossModel_methods(root_module, root_module['ns3::LogDistancePropagationLossModel'])
-    register_Ns3MatrixPropagationLossModel_methods(root_module, root_module['ns3::MatrixPropagationLossModel'])
-    register_Ns3NakagamiPropagationLossModel_methods(root_module, root_module['ns3::NakagamiPropagationLossModel'])
     register_Ns3NixVector_methods(root_module, root_module['ns3::NixVector'])
     register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
@@ -300,19 +212,6 @@
     register_Ns3ReceiveListErrorModel_methods(root_module, root_module['ns3::ReceiveListErrorModel'])
     return
 
-def register_Ns3BandInfo_methods(root_module, cls):
-    ## spectrum-model.h: ns3::BandInfo::BandInfo() [constructor]
-    cls.add_constructor([])
-    ## spectrum-model.h: ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BandInfo const &', 'arg0')])
-    ## spectrum-model.h: ns3::BandInfo::fc [variable]
-    cls.add_instance_attribute('fc', 'double', is_const=False)
-    ## spectrum-model.h: ns3::BandInfo::fh [variable]
-    cls.add_instance_attribute('fh', 'double', is_const=False)
-    ## spectrum-model.h: ns3::BandInfo::fl [variable]
-    cls.add_instance_attribute('fl', 'double', is_const=False)
-    return
-
 def register_Ns3Buffer_methods(root_module, cls):
     ## buffer.h: ns3::Buffer::Buffer() [constructor]
     cls.add_constructor([])
@@ -990,41 +889,6 @@
                    is_const=True)
     return
 
-def register_Ns3SpectrumType_methods(root_module, cls):
-    cls.add_binary_comparison_operator('!=')
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## spectrum-type.h: ns3::SpectrumType::SpectrumType(ns3::SpectrumType const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumType const &', 'arg0')])
-    ## spectrum-type.h: std::string ns3::SpectrumType::GetName() const [member function]
-    cls.add_method('GetName', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## spectrum-type.h: uint32_t ns3::SpectrumType::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumTypeFactory_methods(root_module, cls):
-    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory() [constructor]
-    cls.add_constructor([])
-    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory(ns3::SpectrumTypeFactory const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumTypeFactory const &', 'arg0')])
-    ## spectrum-type.h: static ns3::SpectrumType ns3::SpectrumTypeFactory::Create(std::string name) [member function]
-    cls.add_method('Create', 
-                   'ns3::SpectrumType', 
-                   [param('std::string', 'name')], 
-                   is_static=True)
-    ## spectrum-type.h: static std::string ns3::SpectrumTypeFactory::GetNameByUid(uint32_t uid) [member function]
-    cls.add_method('GetNameByUid', 
-                   'std::string', 
-                   [param('uint32_t', 'uid')], 
-                   is_static=True)
-    return
-
 def register_Ns3Tag_methods(root_module, cls):
     ## tag.h: ns3::Tag::Tag() [constructor]
     cls.add_constructor([])
@@ -1302,254 +1166,6 @@
                    [])
     return
 
-def register_Ns3PropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel(ns3::PropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::Time ns3::PropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::PropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3PropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::PropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::PropagationLossModel::PropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::PropagationLossModel::SetNext(ns3::Ptr<ns3::PropagationLossModel> next) [member function]
-    cls.add_method('SetNext', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PropagationLossModel >', 'next')])
-    ## propagation-loss-model.h: double ns3::PropagationLossModel::CalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('CalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RandomPropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel(ns3::RandomPropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RandomPropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::Time ns3::RandomPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::RandomPropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3RandomPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::RandomPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::RandomPropagationLossModel::RandomPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::RandomPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RangePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::RangePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::RangePropagationLossModel::RangePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::RangePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3SpectrumConverter_methods(root_module, cls):
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::SpectrumConverter const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumConverter const &', 'arg0')])
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::Ptr<ns3::SpectrumModel const> fromSpectrumModel, ns3::Ptr<ns3::SpectrumModel const> toSpectrumModel) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'fromSpectrumModel'), param('ns3::Ptr< ns3::SpectrumModel const >', 'toSpectrumModel')])
-    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter() [constructor]
-    cls.add_constructor([])
-    ## spectrum-converter.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumConverter::Convert(ns3::Ptr<ns3::SpectrumValue const> vvf) const [member function]
-    cls.add_method('Convert', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'vvf')], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumModel_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')])
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(std::vector<double, std::allocator<double> > centerFreqs) [constructor]
-    cls.add_constructor([param('std::vector< double >', 'centerFreqs')])
-    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor]
-    cls.add_constructor([param('ns3::Bands', 'bands')])
-    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: size_t ns3::SpectrumModel::GetNumBands() const [member function]
-    cls.add_method('GetNumBands', 
-                   'size_t', 
-                   [], 
-                   is_const=True)
-    ## spectrum-model.h: ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'ns3::SpectrumModelUid_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SpectrumPropagationLossModel_methods(root_module, cls):
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel(ns3::SpectrumPropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPropagationLossModel const &', 'arg0')])
-    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::CalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('CalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True)
-    ## spectrum-propagation-loss-model.h: static ns3::TypeId ns3::SpectrumPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::SetNext(ns3::Ptr<ns3::SpectrumPropagationLossModel> next) [member function]
-    cls.add_method('SetNext', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'next')])
-    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3SpectrumValue_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_unary_numeric_operator('-')
-    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
-    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('*=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('-=', param('double', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', 'right'))
-    cls.add_inplace_numeric_operator('/=', param('double', 'right'))
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')])
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::Ptr<ns3::SpectrumModel const> sm) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')])
-    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue() [constructor]
-    cls.add_constructor([])
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsBegin() const [member function]
-    cls.add_method('ConstBandsBegin', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsEnd() const [member function]
-    cls.add_method('ConstBandsEnd', 
-                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesBegin() const [member function]
-    cls.add_method('ConstValuesBegin', 
-                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesEnd() const [member function]
-    cls.add_method('ConstValuesEnd', 
-                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumValue::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumValue::GetSpectrumModel() const [member function]
-    cls.add_method('GetSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function]
-    cls.add_method('GetSpectrumModelUid', 
-                   'ns3::SpectrumModelUid_t', 
-                   [], 
-                   is_const=True)
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesBegin() [member function]
-    cls.add_method('ValuesBegin', 
-                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
-                   [])
-    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesEnd() [member function]
-    cls.add_method('ValuesEnd', 
-                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
-                   [])
-    return
-
-def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::ThreeLogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3Trailer_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## trailer.h: ns3::Trailer::Trailer() [constructor]
@@ -1583,159 +1199,6 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
-def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::TwoRayGroundPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
-    cls.add_method('SetSystemLoss', 
-                   'void', 
-                   [param('double', 'systemLoss')])
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetSystemLoss() const [member function]
-    cls.add_method('GetSystemLoss', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ(double heightAboveZ) [member function]
-    cls.add_method('SetHeightAboveZ', 
-                   'void', 
-                   [param('double', 'heightAboveZ')])
-    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
-    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
-    cls.add_method('GetSpeed', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
-    cls.add_method('SetSpeed', 
-                   'void', 
-                   [param('double', 'speed')])
-    return
-
-def register_Ns3Cost231PropagationLossModel_methods(root_module, cls):
-    ## cost231-propagation-loss-model.h: static ns3::TypeId ns3::Cost231PropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Cost231PropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetLoss', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetBSAntennaHeight(double height) [member function]
-    cls.add_method('SetBSAntennaHeight', 
-                   'void', 
-                   [param('double', 'height')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetSSAntennaHeight(double height) [member function]
-    cls.add_method('SetSSAntennaHeight', 
-                   'void', 
-                   [param('double', 'height')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetEnvironment(ns3::Cost231PropagationLossModel::Environment env) [member function]
-    cls.add_method('SetEnvironment', 
-                   'void', 
-                   [param('ns3::Cost231PropagationLossModel::Environment', 'env')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetBSAntennaHeight() const [member function]
-    cls.add_method('GetBSAntennaHeight', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetSSAntennaHeight() const [member function]
-    cls.add_method('GetSSAntennaHeight', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment ns3::Cost231PropagationLossModel::GetEnvironment() const [member function]
-    cls.add_method('GetEnvironment', 
-                   'ns3::Cost231PropagationLossModel::Environment', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetShadowing() [member function]
-    cls.add_method('GetShadowing', 
-                   'double', 
-                   [])
-    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetShadowing(double shadowing) [member function]
-    cls.add_method('SetShadowing', 
-                   'void', 
-                   [param('double', 'shadowing')])
-    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3DataRateChecker_methods(root_module, cls):
     ## data-rate.h: ns3::DataRateChecker::DataRateChecker() [constructor]
     cls.add_constructor([])
@@ -1819,126 +1282,6 @@
                    is_pure_virtual=True, visibility='private', is_virtual=True)
     return
 
-def register_Ns3FixedRssLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::FixedRssLossModel::FixedRssLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::FixedRssLossModel::SetRss(double rss) [member function]
-    cls.add_method('SetRss', 
-                   'void', 
-                   [param('double', 'rss')])
-    ## propagation-loss-model.h: double ns3::FixedRssLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::FriisPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::FriisPropagationLossModel::FriisPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double frequency, double speed) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'frequency'), param('double', 'speed')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double lambda) [member function]
-    cls.add_method('SetLambda', 
-                   'void', 
-                   [param('double', 'lambda')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
-    cls.add_method('SetSystemLoss', 
-                   'void', 
-                   [param('double', 'systemLoss')])
-    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetMinDistance(double minDistance) [member function]
-    cls.add_method('SetMinDistance', 
-                   'void', 
-                   [param('double', 'minDistance')])
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetMinDistance() const [member function]
-    cls.add_method('GetMinDistance', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetLambda() const [member function]
-    cls.add_method('GetLambda', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetSystemLoss() const [member function]
-    cls.add_method('GetSystemLoss', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, cls):
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel(ns3::FriisSpectrumPropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FriisSpectrumPropagationLossModel const &', 'arg0')])
-    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## friis-spectrum-propagation-loss.h: double ns3::FriisSpectrumPropagationLossModel::CalculateLoss(double f, double d) const [member function]
-    cls.add_method('CalculateLoss', 
-                   'double', 
-                   [param('double', 'f'), param('double', 'd')], 
-                   is_const=True)
-    ## friis-spectrum-propagation-loss.h: ns3::Ptr<ns3::SpectrumValue> ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True, is_virtual=True)
-    ## friis-spectrum-propagation-loss.h: static ns3::TypeId ns3::FriisSpectrumPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3JakesPropagationLossModel_methods(root_module, cls):
-    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel::JakesPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNOscillators() const [member function]
-    cls.add_method('GetNOscillators', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNRays() const [member function]
-    cls.add_method('GetNRays', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## jakes-propagation-loss-model.h: static ns3::TypeId ns3::JakesPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNOscillators(uint8_t nOscillators) [member function]
-    cls.add_method('SetNOscillators', 
-                   'void', 
-                   [param('uint8_t', 'nOscillators')])
-    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNRays(uint8_t nRays) [member function]
-    cls.add_method('SetNRays', 
-                   'void', 
-                   [param('uint8_t', 'nRays')])
-    ## jakes-propagation-loss-model.h: double ns3::JakesPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3ListErrorModel_methods(root_module, cls):
     ## error-model.h: ns3::ListErrorModel::ListErrorModel(ns3::ListErrorModel const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::ListErrorModel const &', 'arg0')])
@@ -1970,72 +1313,6 @@
                    visibility='private', is_virtual=True)
     return
 
-def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::LogDistancePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetPathLossExponent(double n) [member function]
-    cls.add_method('SetPathLossExponent', 
-                   'void', 
-                   [param('double', 'n')])
-    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::GetPathLossExponent() const [member function]
-    cls.add_method('GetPathLossExponent', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetReference(double referenceDistance, double referenceLoss) [member function]
-    cls.add_method('SetReference', 
-                   'void', 
-                   [param('double', 'referenceDistance'), param('double', 'referenceLoss')])
-    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3MatrixPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::MatrixPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel::MatrixPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetLoss(ns3::Ptr<ns3::Node> a, ns3::Ptr<ns3::Node> b, double loss, bool symmetric=true) [member function]
-    cls.add_method('SetLoss', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'a'), param('ns3::Ptr< ns3::Node >', 'b'), param('double', 'loss'), param('bool', 'symmetric', default_value='true')])
-    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetDefaultLoss(double arg0) [member function]
-    cls.add_method('SetDefaultLoss', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## propagation-loss-model.h: double ns3::MatrixPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3NakagamiPropagationLossModel_methods(root_module, cls):
-    ## propagation-loss-model.h: static ns3::TypeId ns3::NakagamiPropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## propagation-loss-model.h: double ns3::NakagamiPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPower', 
-                   'double', 
-                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
 def register_Ns3NixVector_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## nix-vector.h: ns3::NixVector::NixVector() [constructor]
@@ -2366,42 +1643,10 @@
 
 def register_functions(root_module):
     module = root_module
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log10(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log10', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log2(ns3::SpectrumValue const & arg) [free function]
-    module.add_function('Log2', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'arg')])
     ## data-rate.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeDataRateChecker() [free function]
     module.add_function('MakeDataRateChecker', 
                         'ns3::Ptr< ns3::AttributeChecker const >', 
                         [])
-    ## spectrum-value.h: extern double ns3::Norm(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Norm', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(ns3::SpectrumValue const & base, double exp) [free function]
-    module.add_function('Pow', 
-                        'ns3::SpectrumValue', 
-                        [param('ns3::SpectrumValue const &', 'base'), param('double', 'exp')])
-    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(double base, ns3::SpectrumValue const & exp) [free function]
-    module.add_function('Pow', 
-                        'ns3::SpectrumValue', 
-                        [param('double', 'base'), param('ns3::SpectrumValue const &', 'exp')])
-    ## spectrum-value.h: extern double ns3::Prod(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Prod', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
-    ## spectrum-value.h: extern double ns3::Sum(ns3::SpectrumValue const & x) [free function]
-    module.add_function('Sum', 
-                        'double', 
-                        [param('ns3::SpectrumValue const &', 'x')])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_core.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_core.py	Tue Feb 08 13:08:45 2011 -0500
@@ -133,12 +133,6 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::AttributeValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::AttributeValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::CallbackImplBase, ns3::empty, ns3::DefaultDeleter<ns3::CallbackImplBase> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CallbackImplBase>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowClassifier>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowProbe', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowProbe>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
-    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> > [class]
-    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::IdealControlMessage', 'ns3::empty', 'ns3::DefaultDeleter<ns3::IdealControlMessage>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::RefCountBase, ns3::empty, ns3::DefaultDeleter<ns3::RefCountBase> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::RefCountBase', 'ns3::empty', 'ns3::DefaultDeleter<ns3::RefCountBase>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SystemThread, ns3::empty, ns3::DefaultDeleter<ns3::SystemThread> > [class]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_dot11s.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_dot11s.py	Tue Feb 08 13:08:45 2011 -0500
@@ -81,8 +81,6 @@
     
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sCongestionControlMode [enumeration]
     module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
-    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
-    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionProtocol [enumeration]
     module.add_enum('dot11sPathSelectionProtocol', ['PROTOCOL_HWMP'])
     ## ie-dot11s-configuration.h: ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
@@ -91,6 +89,8 @@
     module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
     ## ie-dot11s-peer-management.h: ns3::dot11s::PmpReasonCode [enumeration]
     module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
+    ## ie-dot11s-configuration.h: ns3::dot11s::dot11sPathSelectionMetric [enumeration]
+    module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-configuration.h: ns3::dot11s::Dot11sMeshCapability [class]
     module.add_class('Dot11sMeshCapability')
     ## hwmp-protocol.h: ns3::dot11s::HwmpProtocol [class]
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_dsdv.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_dsdv.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## dsdv-helper.h: ns3::DsdvHelper [class]
+    module.add_class('DsdvHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
     
     ## Register a nested module for the namespace Config
     
@@ -81,6 +83,21 @@
 def register_types_ns3_dsdv(module):
     root_module = module.get_root()
     
+    ## dsdv-rtable.h: ns3::dsdv::RouteFlags [enumeration]
+    module.add_enum('RouteFlags', ['VALID', 'INVALID'])
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader [class]
+    module.add_class('DsdvHeader', parent=root_module['ns3::Header'])
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue [class]
+    module.add_class('PacketQueue')
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry [class]
+    module.add_class('QueueEntry')
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol [class]
+    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable [class]
+    module.add_class('RoutingTable')
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry [class]
+    module.add_class('RoutingTableEntry')
+    module.add_container('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry >', ('ns3::Ipv4Address', 'ns3::dsdv::RoutingTableEntry'), container_type='map')
 
 def register_types_ns3_flame(module):
     root_module = module.get_root()
@@ -95,6 +112,488 @@
     
 
 def register_methods(root_module):
+    register_Ns3DsdvHelper_methods(root_module, root_module['ns3::DsdvHelper'])
+    register_Ns3DsdvDsdvHeader_methods(root_module, root_module['ns3::dsdv::DsdvHeader'])
+    register_Ns3DsdvPacketQueue_methods(root_module, root_module['ns3::dsdv::PacketQueue'])
+    register_Ns3DsdvQueueEntry_methods(root_module, root_module['ns3::dsdv::QueueEntry'])
+    register_Ns3DsdvRoutingProtocol_methods(root_module, root_module['ns3::dsdv::RoutingProtocol'])
+    register_Ns3DsdvRoutingTable_methods(root_module, root_module['ns3::dsdv::RoutingTable'])
+    register_Ns3DsdvRoutingTableEntry_methods(root_module, root_module['ns3::dsdv::RoutingTableEntry'])
+    return
+
+def register_Ns3DsdvHelper_methods(root_module, cls):
+    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper(ns3::DsdvHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DsdvHelper const &', 'arg0')])
+    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper() [constructor]
+    cls.add_constructor([])
+    ## dsdv-helper.h: ns3::DsdvHelper * ns3::DsdvHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::DsdvHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::DsdvHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-helper.h: void ns3::DsdvHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+    return
+
+def register_Ns3DsdvDsdvHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::dsdv::DsdvHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::DsdvHeader const &', 'arg0')])
+    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::Ipv4Address dst=ns3::Ipv4Address(), uint32_t hopcount=0, uint32_t dstSeqNo=0) [constructor]
+    cls.add_constructor([param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('uint32_t', 'hopcount', default_value='0'), param('uint32_t', 'dstSeqNo', default_value='0')])
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## dsdv-packet.h: ns3::Ipv4Address ns3::dsdv::DsdvHeader::GetDst() const [member function]
+    cls.add_method('GetDst', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetDstSeqno() const [member function]
+    cls.add_method('GetDstSeqno', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetHopCount() const [member function]
+    cls.add_method('GetHopCount', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet.h: ns3::TypeId ns3::dsdv::DsdvHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: static ns3::TypeId ns3::dsdv::DsdvHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDst(ns3::Ipv4Address destination) [member function]
+    cls.add_method('SetDst', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'destination')])
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDstSeqno(uint32_t sequenceNumber) [member function]
+    cls.add_method('SetDstSeqno', 
+                   'void', 
+                   [param('uint32_t', 'sequenceNumber')])
+    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetHopCount(uint32_t hopCount) [member function]
+    cls.add_method('SetHopCount', 
+                   'void', 
+                   [param('uint32_t', 'hopCount')])
+    return
+
+def register_Ns3DsdvPacketQueue_methods(root_module, cls):
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue(ns3::dsdv::PacketQueue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::PacketQueue const &', 'arg0')])
+    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue() [constructor]
+    cls.add_constructor([])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Dequeue(ns3::Ipv4Address dst, ns3::dsdv::QueueEntry & entry) [member function]
+    cls.add_method('Dequeue', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::QueueEntry &', 'entry')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::DropPacketWithDst(ns3::Ipv4Address dst) [member function]
+    cls.add_method('DropPacketWithDst', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Enqueue(ns3::dsdv::QueueEntry & entry) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::dsdv::QueueEntry &', 'entry')])
+    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Find(ns3::Ipv4Address dst) [member function]
+    cls.add_method('Find', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetCountForPacketsWithDst(ns3::Ipv4Address dst) [member function]
+    cls.add_method('GetCountForPacketsWithDst', 
+                   'uint32_t', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxPacketsPerDst() const [member function]
+    cls.add_method('GetMaxPacketsPerDst', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxQueueLen() const [member function]
+    cls.add_method('GetMaxQueueLen', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::PacketQueue::GetQueueTimeout() const [member function]
+    cls.add_method('GetQueueTimeout', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetSize() [member function]
+    cls.add_method('GetSize', 
+                   'uint32_t', 
+                   [])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxPacketsPerDst(uint32_t len) [member function]
+    cls.add_method('SetMaxPacketsPerDst', 
+                   'void', 
+                   [param('uint32_t', 'len')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxQueueLen(uint32_t len) [member function]
+    cls.add_method('SetMaxQueueLen', 
+                   'void', 
+                   [param('uint32_t', 'len')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetQueueTimeout(ns3::Time t) [member function]
+    cls.add_method('SetQueueTimeout', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    return
+
+def register_Ns3DsdvQueueEntry_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::dsdv::QueueEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::QueueEntry const &', 'arg0')])
+    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::Ptr<ns3::Packet const> pa=0, ns3::Ipv4Header const & h=ns3::Ipv4Header(), ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb=ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>(), ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb=ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Packet const >', 'pa', default_value='0'), param('ns3::Ipv4Header const &', 'h', default_value='ns3::Ipv4Header()'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb', default_value='ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb', default_value='ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()')])
+    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetErrorCallback() const [member function]
+    cls.add_method('GetErrorCallback', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::QueueEntry::GetExpireTime() const [member function]
+    cls.add_method('GetExpireTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Ipv4Header ns3::dsdv::QueueEntry::GetIpv4Header() const [member function]
+    cls.add_method('GetIpv4Header', 
+                   'ns3::Ipv4Header', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Ptr<ns3::Packet const> ns3::dsdv::QueueEntry::GetPacket() const [member function]
+    cls.add_method('GetPacket', 
+                   'ns3::Ptr< ns3::Packet const >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetUnicastForwardCallback() const [member function]
+    cls.add_method('GetUnicastForwardCallback', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('SetErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetExpireTime(ns3::Time exp) [member function]
+    cls.add_method('SetExpireTime', 
+                   'void', 
+                   [param('ns3::Time', 'exp')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetIpv4Header(ns3::Ipv4Header h) [member function]
+    cls.add_method('SetIpv4Header', 
+                   'void', 
+                   [param('ns3::Ipv4Header', 'h')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetPacket(ns3::Ptr<ns3::Packet const> p) [member function]
+    cls.add_method('SetPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p')])
+    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetUnicastForwardCallback(ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb) [member function]
+    cls.add_method('SetUnicastForwardCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb')])
+    return
+
+def register_Ns3DsdvRoutingProtocol_methods(root_module, cls):
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol(ns3::dsdv::RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingProtocol const &', 'arg0')])
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableBufferFlag() const [member function]
+    cls.add_method('GetEnableBufferFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableRAFlag() const [member function]
+    cls.add_method('GetEnableRAFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: static ns3::TypeId ns3::dsdv::RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetWSTFlag() const [member function]
+    cls.add_method('GetWSTFlag', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableBufferFlag(bool f) [member function]
+    cls.add_method('SetEnableBufferFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableRAFlag(bool f) [member function]
+    cls.add_method('SetEnableRAFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetWSTFlag(bool f) [member function]
+    cls.add_method('SetWSTFlag', 
+                   'void', 
+                   [param('bool', 'f')])
+    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::DSDV_PORT [variable]
+    cls.add_static_attribute('DSDV_PORT', 'uint32_t const', is_const=True)
+    return
+
+def register_Ns3DsdvRoutingTable_methods(root_module, cls):
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable(ns3::dsdv::RoutingTable const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingTable const &', 'arg0')])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable() [constructor]
+    cls.add_constructor([])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddIpv4Event(ns3::Ipv4Address arg0, ns3::EventId arg1) [member function]
+    cls.add_method('AddIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'arg0'), param('ns3::EventId', 'arg1')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddRoute(ns3::dsdv::RoutingTableEntry & r) [member function]
+    cls.add_method('AddRoute', 
+                   'bool', 
+                   [param('ns3::dsdv::RoutingTableEntry &', 'r')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AnyRunningEvent(ns3::Ipv4Address address) [member function]
+    cls.add_method('AnyRunningEvent', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::DeleteAllRoutesFromInterface(ns3::Ipv4InterfaceAddress iface) [member function]
+    cls.add_method('DeleteAllRoutesFromInterface', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteIpv4Event(ns3::Ipv4Address address) [member function]
+    cls.add_method('DeleteIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteRoute(ns3::Ipv4Address dst) [member function]
+    cls.add_method('DeleteRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::ForceDeleteIpv4Event(ns3::Ipv4Address address) [member function]
+    cls.add_method('ForceDeleteIpv4Event', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: ns3::EventId ns3::dsdv::RoutingTable::GetEventId(ns3::Ipv4Address address) [member function]
+    cls.add_method('GetEventId', 
+                   'ns3::EventId', 
+                   [param('ns3::Ipv4Address', 'address')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfAllRoutes(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & allRoutes) [member function]
+    cls.add_method('GetListOfAllRoutes', 
+                   'void', 
+                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'allRoutes')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfDestinationWithNextHop(ns3::Ipv4Address nxtHp, std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & dstList) [member function]
+    cls.add_method('GetListOfDestinationWithNextHop', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nxtHp'), param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'dstList')])
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTable::Getholddowntime() const [member function]
+    cls.add_method('Getholddowntime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address dst, ns3::dsdv::RoutingTableEntry & rt) [member function]
+    cls.add_method('LookupRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::RoutingTableEntry &', 'rt')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address id, ns3::dsdv::RoutingTableEntry & rt, bool forRouteInput) [member function]
+    cls.add_method('LookupRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'id'), param('ns3::dsdv::RoutingTableEntry &', 'rt'), param('bool', 'forRouteInput')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Purge(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & removedAddresses) [member function]
+    cls.add_method('Purge', 
+                   'void', 
+                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'removedAddresses')])
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTable::RoutingTableSize() [member function]
+    cls.add_method('RoutingTableSize', 
+                   'uint32_t', 
+                   [])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Setholddowntime(ns3::Time t) [member function]
+    cls.add_method('Setholddowntime', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::Update(ns3::dsdv::RoutingTableEntry & rt) [member function]
+    cls.add_method('Update', 
+                   'bool', 
+                   [param('ns3::dsdv::RoutingTableEntry &', 'rt')])
+    return
+
+def register_Ns3DsdvRoutingTableEntry_methods(root_module, cls):
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::dsdv::RoutingTableEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::dsdv::RoutingTableEntry const &', 'arg0')])
+    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::Ptr<ns3::NetDevice> dev=0, ns3::Ipv4Address dst=ns3::Ipv4Address(), u_int32_t m_seqNo=0, ns3::Ipv4InterfaceAddress iface=ns3::Ipv4InterfaceAddress(), u_int32_t hops=0, ns3::Ipv4Address nextHop=ns3::Ipv4Address(), ns3::Time lifetime=ns3::Simulator::Now( ), ns3::Time SettlingTime=ns3::Simulator::Now( ), bool changedEntries=false) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'dev', default_value='0'), param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('u_int32_t', 'm_seqNo', default_value='0'), param('ns3::Ipv4InterfaceAddress', 'iface', default_value='ns3::Ipv4InterfaceAddress()'), param('u_int32_t', 'hops', default_value='0'), param('ns3::Ipv4Address', 'nextHop', default_value='ns3::Ipv4Address()'), param('ns3::Time', 'lifetime', default_value='ns3::Simulator::Now( )'), param('ns3::Time', 'SettlingTime', default_value='ns3::Simulator::Now( )'), param('bool', 'changedEntries', default_value='false')])
+    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTableEntry::GetEntriesChanged() const [member function]
+    cls.add_method('GetEntriesChanged', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::dsdv::RouteFlags ns3::dsdv::RoutingTableEntry::GetFlag() const [member function]
+    cls.add_method('GetFlag', 
+                   'ns3::dsdv::RouteFlags', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetHop() const [member function]
+    cls.add_method('GetHop', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ipv4InterfaceAddress ns3::dsdv::RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetLifeTime() const [member function]
+    cls.add_method('GetLifeTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetNextHop() const [member function]
+    cls.add_method('GetNextHop', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ptr<ns3::NetDevice> ns3::dsdv::RoutingTableEntry::GetOutputDevice() const [member function]
+    cls.add_method('GetOutputDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingTableEntry::GetRoute() const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetSeqNo() const [member function]
+    cls.add_method('GetSeqNo', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetSettlingTime() const [member function]
+    cls.add_method('GetSettlingTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True)
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetEntriesChanged(bool entriesChanged) [member function]
+    cls.add_method('SetEntriesChanged', 
+                   'void', 
+                   [param('bool', 'entriesChanged')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetFlag(ns3::dsdv::RouteFlags flag) [member function]
+    cls.add_method('SetFlag', 
+                   'void', 
+                   [param('ns3::dsdv::RouteFlags', 'flag')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetHop(uint32_t hopCount) [member function]
+    cls.add_method('SetHop', 
+                   'void', 
+                   [param('uint32_t', 'hopCount')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetInterface(ns3::Ipv4InterfaceAddress iface) [member function]
+    cls.add_method('SetInterface', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetLifeTime(ns3::Time lifeTime) [member function]
+    cls.add_method('SetLifeTime', 
+                   'void', 
+                   [param('ns3::Time', 'lifeTime')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetNextHop(ns3::Ipv4Address nextHop) [member function]
+    cls.add_method('SetNextHop', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nextHop')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetOutputDevice(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('SetOutputDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetRoute(ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('SetRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSeqNo(uint32_t sequenceNumber) [member function]
+    cls.add_method('SetSeqNo', 
+                   'void', 
+                   [param('uint32_t', 'sequenceNumber')])
+    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSettlingTime(ns3::Time settlingTime) [member function]
+    cls.add_method('SetSettlingTime', 
+                   'void', 
+                   [param('ns3::Time', 'settlingTime')])
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_energy.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_energy.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,36 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
+    module.add_class('DeviceEnergyModelContainer')
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
+    module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
+    ## energy-model-helper.h: ns3::EnergySourceHelper [class]
+    module.add_class('EnergySourceHelper', allow_subclassing=True)
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper [class]
+    module.add_class('RvBatteryModelHelper', parent=root_module['ns3::EnergySourceHelper'])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
+    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener [class]
+    module.add_class('WifiRadioEnergyModelPhyListener', parent=root_module['ns3::WifiPhyListener'])
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
+    module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
+    ## device-energy-model.h: ns3::DeviceEnergyModel [class]
+    module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
+    ## energy-source.h: ns3::EnergySource [class]
+    module.add_class('EnergySource', parent=root_module['ns3::Object'])
+    ## energy-source-container.h: ns3::EnergySourceContainer [class]
+    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource [class]
+    module.add_class('LiIonEnergySource', parent=root_module['ns3::EnergySource'])
+    ## rv-battery-model.h: ns3::RvBatteryModel [class]
+    module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource'])
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel [class]
+    module.add_class('SimpleDeviceEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
+    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    ## basic-energy-source.h: ns3::BasicEnergySource [class]
+    module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +125,822 @@
     
 
 def register_methods(root_module):
+    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
+    register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
+    register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
+    register_Ns3RvBatteryModelHelper_methods(root_module, root_module['ns3::RvBatteryModelHelper'])
+    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
+    register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener'])
+    register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
+    register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
+    register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
+    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
+    register_Ns3LiIonEnergySource_methods(root_module, root_module['ns3::LiIonEnergySource'])
+    register_Ns3RvBatteryModel_methods(root_module, root_module['ns3::RvBatteryModel'])
+    register_Ns3SimpleDeviceEnergyModel_methods(root_module, root_module['ns3::SimpleDeviceEnergyModel'])
+    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
+    register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
+    return
+
+def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
+    cls.add_constructor([param('std::string', 'modelName')])
+    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::DeviceEnergyModelContainer', 'container')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'modelName')])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('Install', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
+    cls.add_method('Install', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySourceHelper_methods(root_module, cls):
+    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
+    cls.add_constructor([])
+    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::EnergySourceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::EnergySourceContainer', 
+                   [], 
+                   is_const=True)
+    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RvBatteryModelHelper_methods(root_module, cls):
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper(ns3::RvBatteryModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RvBatteryModelHelper const &', 'arg0')])
+    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper() [constructor]
+    cls.add_constructor([])
+    ## rv-battery-model-helper.h: void ns3::RvBatteryModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## rv-battery-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::RvBatteryModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
+    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener(ns3::WifiRadioEnergyModelPhyListener const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModelPhyListener const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyMaybeCcaBusyStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(ns3::Time duration) [member function]
+    cls.add_method('NotifySwitchingStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetChangeStateCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    return
+
+def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
+    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
+    cls.add_constructor([])
+    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3DeviceEnergyModel_methods(root_module, cls):
+    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel(ns3::DeviceEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
+    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
+    cls.add_method('GetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySource_methods(root_module, cls):
+    ## energy-source.h: ns3::EnergySource::EnergySource(ns3::EnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySource const &', 'arg0')])
+    ## energy-source.h: ns3::EnergySource::EnergySource() [constructor]
+    cls.add_constructor([])
+    ## energy-source.h: void ns3::EnergySource::AppendDeviceEnergyModel(ns3::Ptr<ns3::DeviceEnergyModel> deviceEnergyModelPtr) [member function]
+    cls.add_method('AppendDeviceEnergyModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'deviceEnergyModelPtr')])
+    ## energy-source.h: void ns3::EnergySource::DisposeDeviceModels() [member function]
+    cls.add_method('DisposeDeviceModels', 
+                   'void', 
+                   [])
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
+    cls.add_method('FindDeviceEnergyModels', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('ns3::TypeId', 'tid')])
+    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
+    cls.add_method('FindDeviceEnergyModels', 
+                   'ns3::DeviceEnergyModelContainer', 
+                   [param('std::string', 'name')])
+    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## energy-source.h: void ns3::EnergySource::StartDeviceModels() [member function]
+    cls.add_method('StartDeviceModels', 
+                   'void', 
+                   [])
+    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
+    cls.add_method('BreakDeviceEnergyModelRefCycle', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
+    cls.add_method('CalculateTotalCurrent', 
+                   'double', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
+    cls.add_method('NotifyEnergyDrained', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnergySourceContainer_methods(root_module, cls):
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
+    cls.add_constructor([])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
+    cls.add_constructor([param('std::string', 'sourceName')])
+    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
+    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::EnergySourceContainer', 'container')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
+    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('std::string', 'sourceName')])
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
+    cls.add_method('Get', 
+                   'ns3::Ptr< ns3::EnergySource >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
+    cls.add_method('GetN', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LiIonEnergySource_methods(root_module, cls):
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource(ns3::LiIonEnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LiIonEnergySource const &', 'arg0')])
+    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource() [constructor]
+    cls.add_constructor([])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('DecreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: ns3::Time ns3::LiIonEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## li-ion-energy-source.h: static ns3::TypeId ns3::LiIonEnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
+    cls.add_method('IncreaseRemainingEnergy', 
+                   'void', 
+                   [param('double', 'energyJ')], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
+    cls.add_method('SetInitialEnergy', 
+                   'void', 
+                   [param('double', 'initialEnergyJ')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetInitialSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RvBatteryModel_methods(root_module, cls):
+    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel(ns3::RvBatteryModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RvBatteryModel const &', 'arg0')])
+    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel() [constructor]
+    cls.add_constructor([])
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetAlpha() const [member function]
+    cls.add_method('GetAlpha', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBatteryLevel() [member function]
+    cls.add_method('GetBatteryLevel', 
+                   'double', 
+                   [])
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBeta() const [member function]
+    cls.add_method('GetBeta', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetCutoffVoltage() const [member function]
+    cls.add_method('GetCutoffVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetLifetime() const [member function]
+    cls.add_method('GetLifetime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: int ns3::RvBatteryModel::GetNumOfTerms() const [member function]
+    cls.add_method('GetNumOfTerms', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetOpenCircuitVoltage() const [member function]
+    cls.add_method('GetOpenCircuitVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetSamplingInterval() const [member function]
+    cls.add_method('GetSamplingInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## rv-battery-model.h: double ns3::RvBatteryModel::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## rv-battery-model.h: static ns3::TypeId ns3::RvBatteryModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetAlpha(double alpha) [member function]
+    cls.add_method('SetAlpha', 
+                   'void', 
+                   [param('double', 'alpha')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetBeta(double beta) [member function]
+    cls.add_method('SetBeta', 
+                   'void', 
+                   [param('double', 'beta')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetCutoffVoltage(double voltage) [member function]
+    cls.add_method('SetCutoffVoltage', 
+                   'void', 
+                   [param('double', 'voltage')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetNumOfTerms(int num) [member function]
+    cls.add_method('SetNumOfTerms', 
+                   'void', 
+                   [param('int', 'num')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetOpenCircuitVoltage(double voltage) [member function]
+    cls.add_method('SetOpenCircuitVoltage', 
+                   'void', 
+                   [param('double', 'voltage')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::SetSamplingInterval(ns3::Time interval) [member function]
+    cls.add_method('SetSamplingInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## rv-battery-model.h: void ns3::RvBatteryModel::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## rv-battery-model.h: void ns3::RvBatteryModel::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3SimpleDeviceEnergyModel_methods(root_module, cls):
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel(ns3::SimpleDeviceEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleDeviceEnergyModel const &', 'arg0')])
+    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: ns3::Ptr<ns3::Node> ns3::SimpleDeviceEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## simple-device-energy-model.h: static ns3::TypeId ns3::SimpleDeviceEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetCurrentA(double current) [member function]
+    cls.add_method('SetCurrentA', 
+                   'void', 
+                   [param('double', 'current')])
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetCcaBusyCurrentA() const [member function]
+    cls.add_method('GetCcaBusyCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'ns3::WifiPhy::State', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
+    cls.add_method('GetIdleCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener() [member function]
+    cls.add_method('GetPhyListener', 
+                   'ns3::WifiRadioEnergyModelPhyListener *', 
+                   [])
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
+    cls.add_method('GetRxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSwitchingCurrentA() const [member function]
+    cls.add_method('GetSwitchingCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
+    cls.add_method('GetTxCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetCcaBusyCurrentA(double ccaBusyCurrentA) [member function]
+    cls.add_method('SetCcaBusyCurrentA', 
+                   'void', 
+                   [param('double', 'ccaBusyCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
+    cls.add_method('SetIdleCurrentA', 
+                   'void', 
+                   [param('double', 'idleCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
+    cls.add_method('SetRxCurrentA', 
+                   'void', 
+                   [param('double', 'rxCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSwitchingCurrentA(double switchingCurrentA) [member function]
+    cls.add_method('SetSwitchingCurrentA', 
+                   'void', 
+                   [param('double', 'switchingCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
+    cls.add_method('SetTxCurrentA', 
+                   'void', 
+                   [param('double', 'txCurrentA')])
+    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3BasicEnergySource_methods(root_module, cls):
+    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
+    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
+    cls.add_constructor([])
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
+    cls.add_method('GetEnergyFraction', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
+    cls.add_method('GetEnergyUpdateInterval', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
+    cls.add_method('GetInitialEnergy', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
+    cls.add_method('GetRemainingEnergy', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
+    cls.add_method('GetSupplyVoltage', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
+    cls.add_method('SetEnergyUpdateInterval', 
+                   'void', 
+                   [param('ns3::Time', 'interval')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
+    cls.add_method('SetInitialEnergy', 
+                   'void', 
+                   [param('double', 'initialEnergyJ')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
+    cls.add_method('SetSupplyVoltage', 
+                   'void', 
+                   [param('double', 'supplyVoltageV')])
+    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
+    cls.add_method('UpdateEnergySource', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_flow_monitor.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_flow_monitor.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,40 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper [class]
+    module.add_class('FlowMonitorHelper')
+    ## histogram.h: ns3::Histogram [class]
+    module.add_class('Histogram')
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowClassifier', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowClassifier>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::FlowProbe', 'ns3::empty', 'ns3::DefaultDeleter<ns3::FlowProbe>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## flow-classifier.h: ns3::FlowClassifier [class]
+    module.add_class('FlowClassifier', parent=root_module['ns3::SimpleRefCount< ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> >'])
+    ## flow-monitor.h: ns3::FlowMonitor [class]
+    module.add_class('FlowMonitor', parent=root_module['ns3::Object'])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats [struct]
+    module.add_class('FlowStats', outer_class=root_module['ns3::FlowMonitor'])
+    ## flow-probe.h: ns3::FlowProbe [class]
+    module.add_class('FlowProbe', parent=root_module['ns3::SimpleRefCount< ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> >'])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats [struct]
+    module.add_class('FlowStats', outer_class=root_module['ns3::FlowProbe'])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier [class]
+    module.add_class('Ipv4FlowClassifier', parent=root_module['ns3::FlowClassifier'])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple [struct]
+    module.add_class('FiveTuple', outer_class=root_module['ns3::Ipv4FlowClassifier'])
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe [class]
+    module.add_class('Ipv4FlowProbe', parent=root_module['ns3::FlowProbe'])
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::DropReason [enumeration]
+    module.add_enum('DropReason', ['DROP_NO_ROUTE', 'DROP_TTL_EXPIRE', 'DROP_BAD_CHECKSUM', 'DROP_QUEUE', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_INVALID_REASON'], outer_class=root_module['ns3::Ipv4FlowProbe'])
+    module.add_container('std::map< unsigned int, ns3::FlowMonitor::FlowStats >', ('unsigned int', 'ns3::FlowMonitor::FlowStats'), container_type='map')
+    module.add_container('std::map< unsigned int, ns3::FlowProbe::FlowStats >', ('unsigned int', 'ns3::FlowProbe::FlowStats'), container_type='map')
+    typehandlers.add_type_alias('uint32_t', 'ns3::FlowPacketId')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowPacketId*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowPacketId&')
+    typehandlers.add_type_alias('uint32_t', 'ns3::FlowId')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowId*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowId&')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +129,327 @@
     
 
 def register_methods(root_module):
+    register_Ns3FlowMonitorHelper_methods(root_module, root_module['ns3::FlowMonitorHelper'])
+    register_Ns3Histogram_methods(root_module, root_module['ns3::Histogram'])
+    register_Ns3FlowClassifier_methods(root_module, root_module['ns3::FlowClassifier'])
+    register_Ns3FlowMonitor_methods(root_module, root_module['ns3::FlowMonitor'])
+    register_Ns3FlowMonitorFlowStats_methods(root_module, root_module['ns3::FlowMonitor::FlowStats'])
+    register_Ns3FlowProbe_methods(root_module, root_module['ns3::FlowProbe'])
+    register_Ns3FlowProbeFlowStats_methods(root_module, root_module['ns3::FlowProbe::FlowStats'])
+    register_Ns3Ipv4FlowClassifier_methods(root_module, root_module['ns3::Ipv4FlowClassifier'])
+    register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, root_module['ns3::Ipv4FlowClassifier::FiveTuple'])
+    register_Ns3Ipv4FlowProbe_methods(root_module, root_module['ns3::Ipv4FlowProbe'])
+    return
+
+def register_Ns3FlowMonitorHelper_methods(root_module, cls):
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper(ns3::FlowMonitorHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitorHelper const &', 'arg0')])
+    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowClassifier> ns3::FlowMonitorHelper::GetClassifier() [member function]
+    cls.add_method('GetClassifier', 
+                   'ns3::Ptr< ns3::FlowClassifier >', 
+                   [])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::GetMonitor() [member function]
+    cls.add_method('GetMonitor', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::NodeContainer nodes) [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [param('ns3::NodeContainer', 'nodes')])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::InstallAll() [member function]
+    cls.add_method('InstallAll', 
+                   'ns3::Ptr< ns3::FlowMonitor >', 
+                   [])
+    ## flow-monitor-helper.h: void ns3::FlowMonitorHelper::SetMonitorAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetMonitorAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    return
+
+def register_Ns3Histogram_methods(root_module, cls):
+    ## histogram.h: ns3::Histogram::Histogram(ns3::Histogram const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Histogram const &', 'arg0')])
+    ## histogram.h: ns3::Histogram::Histogram(double binWidth) [constructor]
+    cls.add_constructor([param('double', 'binWidth')])
+    ## histogram.h: ns3::Histogram::Histogram() [constructor]
+    cls.add_constructor([])
+    ## histogram.h: void ns3::Histogram::AddValue(double value) [member function]
+    cls.add_method('AddValue', 
+                   'void', 
+                   [param('double', 'value')])
+    ## histogram.h: uint32_t ns3::Histogram::GetBinCount(uint32_t index) [member function]
+    cls.add_method('GetBinCount', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinEnd(uint32_t index) [member function]
+    cls.add_method('GetBinEnd', 
+                   'double', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinStart(uint32_t index) [member function]
+    cls.add_method('GetBinStart', 
+                   'double', 
+                   [param('uint32_t', 'index')])
+    ## histogram.h: double ns3::Histogram::GetBinWidth(uint32_t index) const [member function]
+    cls.add_method('GetBinWidth', 
+                   'double', 
+                   [param('uint32_t', 'index')], 
+                   is_const=True)
+    ## histogram.h: uint32_t ns3::Histogram::GetNBins() const [member function]
+    cls.add_method('GetNBins', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## histogram.h: void ns3::Histogram::SerializeToXmlStream(std::ostream & os, int indent, std::string elementName) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('std::string', 'elementName')], 
+                   is_const=True)
+    ## histogram.h: void ns3::Histogram::SetDefaultBinWidth(double binWidth) [member function]
+    cls.add_method('SetDefaultBinWidth', 
+                   'void', 
+                   [param('double', 'binWidth')])
+    return
+
+def register_Ns3FlowClassifier_methods(root_module, cls):
+    ## flow-classifier.h: ns3::FlowClassifier::FlowClassifier() [constructor]
+    cls.add_constructor([])
+    ## flow-classifier.h: void ns3::FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## flow-classifier.h: ns3::FlowId ns3::FlowClassifier::GetNewFlowId() [member function]
+    cls.add_method('GetNewFlowId', 
+                   'ns3::FlowId', 
+                   [], 
+                   visibility='protected')
+    return
+
+def register_Ns3FlowMonitor_methods(root_module, cls):
+    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor(ns3::FlowMonitor const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitor const &', 'arg0')])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor.h: void ns3::FlowMonitor::AddProbe(ns3::Ptr<ns3::FlowProbe> probe) [member function]
+    cls.add_method('AddProbe', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe')])
+    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets() [member function]
+    cls.add_method('CheckForLostPackets', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets(ns3::Time maxDelay) [member function]
+    cls.add_method('CheckForLostPackets', 
+                   'void', 
+                   [param('ns3::Time', 'maxDelay')])
+    ## flow-monitor.h: std::vector<ns3::Ptr<ns3::FlowProbe>, std::allocator<ns3::Ptr<ns3::FlowProbe> > > ns3::FlowMonitor::GetAllProbes() const [member function]
+    cls.add_method('GetAllProbes', 
+                   'std::vector< ns3::Ptr< ns3::FlowProbe > >', 
+                   [], 
+                   is_const=True)
+    ## flow-monitor.h: std::map<unsigned int, ns3::FlowMonitor::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowMonitor::FlowStats> > > ns3::FlowMonitor::GetFlowStats() const [member function]
+    cls.add_method('GetFlowStats', 
+                   'std::map< unsigned int, ns3::FlowMonitor::FlowStats >', 
+                   [], 
+                   is_const=True)
+    ## flow-monitor.h: ns3::TypeId ns3::FlowMonitor::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## flow-monitor.h: static ns3::TypeId ns3::FlowMonitor::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportDrop(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode) [member function]
+    cls.add_method('ReportDrop', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportFirstTx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportFirstTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportForwarding(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportForwarding', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::ReportLastRx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
+    cls.add_method('ReportLastRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlFile(std::string fileName, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlFile', 
+                   'void', 
+                   [param('std::string', 'fileName'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlStream(std::ostream & os, int indent, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: std::string ns3::FlowMonitor::SerializeToXmlString(int indent, bool enableHistograms, bool enableProbes) [member function]
+    cls.add_method('SerializeToXmlString', 
+                   'std::string', 
+                   [param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
+    ## flow-monitor.h: void ns3::FlowMonitor::SetFlowClassifier(ns3::Ptr<ns3::FlowClassifier> classifier) [member function]
+    cls.add_method('SetFlowClassifier', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::FlowClassifier >', 'classifier')])
+    ## flow-monitor.h: void ns3::FlowMonitor::Start(ns3::Time const & time) [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')])
+    ## flow-monitor.h: void ns3::FlowMonitor::StartRightNow() [member function]
+    cls.add_method('StartRightNow', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::Stop(ns3::Time const & time) [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')])
+    ## flow-monitor.h: void ns3::FlowMonitor::StopRightNow() [member function]
+    cls.add_method('StopRightNow', 
+                   'void', 
+                   [])
+    ## flow-monitor.h: void ns3::FlowMonitor::NotifyConstructionCompleted() [member function]
+    cls.add_method('NotifyConstructionCompleted', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3FlowMonitorFlowStats_methods(root_module, cls):
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats() [constructor]
+    cls.add_constructor([])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats(ns3::FlowMonitor::FlowStats const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowMonitor::FlowStats const &', 'arg0')])
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::bytesDropped [variable]
+    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long >', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delayHistogram [variable]
+    cls.add_instance_attribute('delayHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delaySum [variable]
+    cls.add_instance_attribute('delaySum', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::flowInterruptionsHistogram [variable]
+    cls.add_instance_attribute('flowInterruptionsHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterHistogram [variable]
+    cls.add_instance_attribute('jitterHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterSum [variable]
+    cls.add_instance_attribute('jitterSum', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lastDelay [variable]
+    cls.add_instance_attribute('lastDelay', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lostPackets [variable]
+    cls.add_instance_attribute('lostPackets', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetSizeHistogram [variable]
+    cls.add_instance_attribute('packetSizeHistogram', 'ns3::Histogram', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetsDropped [variable]
+    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxBytes [variable]
+    cls.add_instance_attribute('rxBytes', 'uint64_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxPackets [variable]
+    cls.add_instance_attribute('rxPackets', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstRxPacket [variable]
+    cls.add_instance_attribute('timeFirstRxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstTxPacket [variable]
+    cls.add_instance_attribute('timeFirstTxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastRxPacket [variable]
+    cls.add_instance_attribute('timeLastRxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastTxPacket [variable]
+    cls.add_instance_attribute('timeLastTxPacket', 'ns3::Time', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timesForwarded [variable]
+    cls.add_instance_attribute('timesForwarded', 'uint32_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txBytes [variable]
+    cls.add_instance_attribute('txBytes', 'uint64_t', is_const=False)
+    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txPackets [variable]
+    cls.add_instance_attribute('txPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3FlowProbe_methods(root_module, cls):
+    ## flow-probe.h: void ns3::FlowProbe::AddPacketDropStats(ns3::FlowId flowId, uint32_t packetSize, uint32_t reasonCode) [member function]
+    cls.add_method('AddPacketDropStats', 
+                   'void', 
+                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
+    ## flow-probe.h: void ns3::FlowProbe::AddPacketStats(ns3::FlowId flowId, uint32_t packetSize, ns3::Time delayFromFirstProbe) [member function]
+    cls.add_method('AddPacketStats', 
+                   'void', 
+                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('ns3::Time', 'delayFromFirstProbe')])
+    ## flow-probe.h: std::map<unsigned int, ns3::FlowProbe::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowProbe::FlowStats> > > ns3::FlowProbe::GetStats() const [member function]
+    cls.add_method('GetStats', 
+                   'std::map< unsigned int, ns3::FlowProbe::FlowStats >', 
+                   [], 
+                   is_const=True)
+    ## flow-probe.h: void ns3::FlowProbe::SerializeToXmlStream(std::ostream & os, int indent, uint32_t index) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent'), param('uint32_t', 'index')], 
+                   is_const=True)
+    ## flow-probe.h: ns3::FlowProbe::FlowProbe(ns3::Ptr<ns3::FlowMonitor> flowMonitor) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'flowMonitor')], 
+                        visibility='protected')
+    return
+
+def register_Ns3FlowProbeFlowStats_methods(root_module, cls):
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats(ns3::FlowProbe::FlowStats const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FlowProbe::FlowStats const &', 'arg0')])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats() [constructor]
+    cls.add_constructor([])
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint64_t', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytesDropped [variable]
+    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long >', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::delayFromFirstProbeSum [variable]
+    cls.add_instance_attribute('delayFromFirstProbeSum', 'ns3::Time', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::packets [variable]
+    cls.add_instance_attribute('packets', 'uint32_t', is_const=False)
+    ## flow-probe.h: ns3::FlowProbe::FlowStats::packetsDropped [variable]
+    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
+    return
+
+def register_Ns3Ipv4FlowClassifier_methods(root_module, cls):
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::Ipv4FlowClassifier() [constructor]
+    cls.add_constructor([])
+    ## ipv4-flow-classifier.h: bool ns3::Ipv4FlowClassifier::Classify(ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet const> ipPayload, uint32_t * out_flowId, uint32_t * out_packetId) [member function]
+    cls.add_method('Classify', 
+                   'bool', 
+                   [param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet const >', 'ipPayload'), param('uint32_t *', 'out_flowId'), param('uint32_t *', 'out_packetId')])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple ns3::Ipv4FlowClassifier::FindFlow(ns3::FlowId flowId) const [member function]
+    cls.add_method('FindFlow', 
+                   'ns3::Ipv4FlowClassifier::FiveTuple', 
+                   [param('ns3::FlowId', 'flowId')], 
+                   is_const=True)
+    ## ipv4-flow-classifier.h: void ns3::Ipv4FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
+    cls.add_method('SerializeToXmlStream', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('int', 'indent')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
+    cls.add_constructor([])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4FlowClassifier::FiveTuple const &', 'arg0')])
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationAddress [variable]
+    cls.add_instance_attribute('destinationAddress', 'ns3::Ipv4Address', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationPort [variable]
+    cls.add_instance_attribute('destinationPort', 'uint16_t', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::protocol [variable]
+    cls.add_instance_attribute('protocol', 'uint8_t', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourceAddress [variable]
+    cls.add_instance_attribute('sourceAddress', 'ns3::Ipv4Address', is_const=False)
+    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourcePort [variable]
+    cls.add_instance_attribute('sourcePort', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3Ipv4FlowProbe_methods(root_module, cls):
+    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::Ipv4FlowProbe(ns3::Ptr<ns3::FlowMonitor> monitor, ns3::Ptr<ns3::Ipv4FlowClassifier> classifier, ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'monitor'), param('ns3::Ptr< ns3::Ipv4FlowClassifier >', 'classifier'), param('ns3::Ptr< ns3::Node >', 'node')])
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_global_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_global_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,24 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## global-route-manager.h: ns3::GlobalRouteManager [class]
+    module.add_class('GlobalRouteManager')
+    ## global-router-interface.h: ns3::GlobalRoutingLSA [class]
+    module.add_class('GlobalRoutingLSA')
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType [enumeration]
+    module.add_enum('LSType', ['Unknown', 'RouterLSA', 'NetworkLSA', 'SummaryLSA', 'SummaryLSA_ASBR', 'ASExternalLSAs'], outer_class=root_module['ns3::GlobalRoutingLSA'])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus [enumeration]
+    module.add_enum('SPFStatus', ['LSA_SPF_NOT_EXPLORED', 'LSA_SPF_CANDIDATE', 'LSA_SPF_IN_SPFTREE'], outer_class=root_module['ns3::GlobalRoutingLSA'])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord [class]
+    module.add_class('GlobalRoutingLinkRecord')
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType [enumeration]
+    module.add_enum('LinkType', ['Unknown', 'PointToPoint', 'TransitNetwork', 'StubNetwork', 'VirtualLink'], outer_class=root_module['ns3::GlobalRoutingLinkRecord'])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper [class]
+    module.add_class('Ipv4GlobalRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## global-router-interface.h: ns3::GlobalRouter [class]
+    module.add_class('GlobalRouter', is_singleton=True, parent=root_module['ns3::Object'])
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting [class]
+    module.add_class('Ipv4GlobalRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +113,370 @@
     
 
 def register_methods(root_module):
+    register_Ns3GlobalRouteManager_methods(root_module, root_module['ns3::GlobalRouteManager'])
+    register_Ns3GlobalRoutingLSA_methods(root_module, root_module['ns3::GlobalRoutingLSA'])
+    register_Ns3GlobalRoutingLinkRecord_methods(root_module, root_module['ns3::GlobalRoutingLinkRecord'])
+    register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, root_module['ns3::Ipv4GlobalRoutingHelper'])
+    register_Ns3GlobalRouter_methods(root_module, root_module['ns3::GlobalRouter'])
+    register_Ns3Ipv4GlobalRouting_methods(root_module, root_module['ns3::Ipv4GlobalRouting'])
+    return
+
+def register_Ns3GlobalRouteManager_methods(root_module, cls):
+    ## global-route-manager.h: static uint32_t ns3::GlobalRouteManager::AllocateRouterId() [member function]
+    cls.add_method('AllocateRouterId', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::DeleteGlobalRoutes() [member function]
+    cls.add_method('DeleteGlobalRoutes', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::BuildGlobalRoutingDatabase() [member function]
+    cls.add_method('BuildGlobalRoutingDatabase', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## global-route-manager.h: static void ns3::GlobalRouteManager::InitializeRoutes() [member function]
+    cls.add_method('InitializeRoutes', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3GlobalRoutingLSA_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA::SPFStatus status, ns3::Ipv4Address linkStateId, ns3::Ipv4Address advertisingRtr) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLSA::SPFStatus', 'status'), param('ns3::Ipv4Address', 'linkStateId'), param('ns3::Ipv4Address', 'advertisingRtr')])
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA & lsa) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLSA &', 'lsa')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddAttachedRouter(ns3::Ipv4Address addr) [member function]
+    cls.add_method('AddAttachedRouter', 
+                   'uint32_t', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddLinkRecord(ns3::GlobalRoutingLinkRecord * lr) [member function]
+    cls.add_method('AddLinkRecord', 
+                   'uint32_t', 
+                   [param('ns3::GlobalRoutingLinkRecord *', 'lr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::ClearLinkRecords() [member function]
+    cls.add_method('ClearLinkRecords', 
+                   'void', 
+                   [])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::CopyLinkRecords(ns3::GlobalRoutingLSA const & lsa) [member function]
+    cls.add_method('CopyLinkRecords', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA const &', 'lsa')])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAdvertisingRouter() const [member function]
+    cls.add_method('GetAdvertisingRouter', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAttachedRouter(uint32_t n) const [member function]
+    cls.add_method('GetAttachedRouter', 
+                   'ns3::Ipv4Address', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType ns3::GlobalRoutingLSA::GetLSType() const [member function]
+    cls.add_method('GetLSType', 
+                   'ns3::GlobalRoutingLSA::LSType', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord * ns3::GlobalRoutingLSA::GetLinkRecord(uint32_t n) const [member function]
+    cls.add_method('GetLinkRecord', 
+                   'ns3::GlobalRoutingLinkRecord *', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetLinkStateId() const [member function]
+    cls.add_method('GetLinkStateId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNAttachedRouters() const [member function]
+    cls.add_method('GetNAttachedRouters', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNLinkRecords() const [member function]
+    cls.add_method('GetNLinkRecords', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Mask ns3::GlobalRoutingLSA::GetNetworkLSANetworkMask() const [member function]
+    cls.add_method('GetNetworkLSANetworkMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ptr<ns3::Node> ns3::GlobalRoutingLSA::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus ns3::GlobalRoutingLSA::GetStatus() const [member function]
+    cls.add_method('GetStatus', 
+                   'ns3::GlobalRoutingLSA::SPFStatus', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: bool ns3::GlobalRoutingLSA::IsEmpty() const [member function]
+    cls.add_method('IsEmpty', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetAdvertisingRouter(ns3::Ipv4Address rtr) [member function]
+    cls.add_method('SetAdvertisingRouter', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'rtr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLSType(ns3::GlobalRoutingLSA::LSType typ) [member function]
+    cls.add_method('SetLSType', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA::LSType', 'typ')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLinkStateId(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkStateId', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNetworkLSANetworkMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetNetworkLSANetworkMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetStatus(ns3::GlobalRoutingLSA::SPFStatus status) [member function]
+    cls.add_method('SetStatus', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLSA::SPFStatus', 'status')])
+    return
+
+def register_Ns3GlobalRoutingLinkRecord_methods(root_module, cls):
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord const &', 'arg0')])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord::LinkType linkType, ns3::Ipv4Address linkId, ns3::Ipv4Address linkData, uint16_t metric) [constructor]
+    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType'), param('ns3::Ipv4Address', 'linkId'), param('ns3::Ipv4Address', 'linkData'), param('uint16_t', 'metric')])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkData() const [member function]
+    cls.add_method('GetLinkData', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkId() const [member function]
+    cls.add_method('GetLinkId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType ns3::GlobalRoutingLinkRecord::GetLinkType() const [member function]
+    cls.add_method('GetLinkType', 
+                   'ns3::GlobalRoutingLinkRecord::LinkType', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint16_t ns3::GlobalRoutingLinkRecord::GetMetric() const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkData(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkData', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkId(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLinkId', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkType(ns3::GlobalRoutingLinkRecord::LinkType linkType) [member function]
+    cls.add_method('SetLinkType', 
+                   'void', 
+                   [param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType')])
+    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetMetric(uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint16_t', 'metric')])
+    return
+
+def register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, cls):
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper(ns3::Ipv4GlobalRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4GlobalRoutingHelper const &', 'arg0')])
+    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper * ns3::Ipv4GlobalRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4GlobalRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4GlobalRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables() [member function]
+    cls.add_method('PopulateRoutingTables', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables() [member function]
+    cls.add_method('RecomputeRoutingTables', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3GlobalRouter_methods(root_module, cls):
+    ## global-router-interface.h: static ns3::TypeId ns3::GlobalRouter::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## global-router-interface.h: ns3::GlobalRouter::GlobalRouter() [constructor]
+    cls.add_constructor([])
+    ## global-router-interface.h: void ns3::GlobalRouter::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4GlobalRouting> routing) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4GlobalRouting >', 'routing')])
+    ## global-router-interface.h: ns3::Ptr<ns3::Ipv4GlobalRouting> ns3::GlobalRouter::GetRoutingProtocol() [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4GlobalRouting >', 
+                   [])
+    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRouter::GetRouterId() const [member function]
+    cls.add_method('GetRouterId', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::DiscoverLSAs() [member function]
+    cls.add_method('DiscoverLSAs', 
+                   'uint32_t', 
+                   [])
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNumLSAs() const [member function]
+    cls.add_method('GetNumLSAs', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## global-router-interface.h: bool ns3::GlobalRouter::GetLSA(uint32_t n, ns3::GlobalRoutingLSA & lsa) const [member function]
+    cls.add_method('GetLSA', 
+                   'bool', 
+                   [param('uint32_t', 'n'), param('ns3::GlobalRoutingLSA &', 'lsa')], 
+                   is_const=True)
+    ## global-router-interface.h: void ns3::GlobalRouter::InjectRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
+    cls.add_method('InjectRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
+    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNInjectedRoutes() [member function]
+    cls.add_method('GetNInjectedRoutes', 
+                   'uint32_t', 
+                   [])
+    ## global-router-interface.h: ns3::Ipv4RoutingTableEntry * ns3::GlobalRouter::GetInjectedRoute(uint32_t i) [member function]
+    cls.add_method('GetInjectedRoute', 
+                   retval('ns3::Ipv4RoutingTableEntry *', caller_owns_return=False), 
+                   [param('uint32_t', 'i')])
+    ## global-router-interface.h: void ns3::GlobalRouter::RemoveInjectedRoute(uint32_t i) [member function]
+    cls.add_method('RemoveInjectedRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## global-router-interface.h: bool ns3::GlobalRouter::WithdrawRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
+    cls.add_method('WithdrawRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
+    ## global-router-interface.h: void ns3::GlobalRouter::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3Ipv4GlobalRouting_methods(root_module, cls):
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting(ns3::Ipv4GlobalRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4GlobalRouting const &', 'arg0')])
+    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddASExternalRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddASExternalRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
+    ## ipv4-global-routing.h: uint32_t ns3::Ipv4GlobalRouting::GetNRoutes() const [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-global-routing.h: ns3::Ipv4RoutingTableEntry * ns3::Ipv4GlobalRouting::GetRoute(uint32_t i) const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv4RoutingTableEntry *', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-global-routing.h: static ns3::TypeId ns3::Ipv4GlobalRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv4-global-routing.h: bool ns3::Ipv4GlobalRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4GlobalRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_helper.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,8 +3,6 @@
 def register_types(module):
     root_module = module.get_root()
     
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper [class]
-    module.add_class('AdhocAlohaNoackIdealPhyHelper')
     ## animation-interface.h: ns3::AnimationInterface [class]
     module.add_class('AnimationInterface')
     ## application-container.h: ns3::ApplicationContainer [class]
@@ -73,12 +71,6 @@
     module.add_class('PointToPointHelper', parent=[root_module['ns3::PcapHelperForDevice'], root_module['ns3::AsciiTraceHelperForDevice']])
     ## point-to-point-star-helper.h: ns3::PointToPointStarHelper [class]
     module.add_class('PointToPointStarHelper')
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper [class]
-    module.add_class('SpectrumAnalyzerHelper')
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper [class]
-    module.add_class('SpectrumChannelHelper')
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper [class]
-    module.add_class('SpectrumPhyHelper')
     ## tap-bridge-helper.h: ns3::TapBridgeHelper [class]
     module.add_class('TapBridgeHelper')
     ## topology-reader-helper.h: ns3::TopologyReaderHelper [class]
@@ -95,8 +87,6 @@
     module.add_class('UdpTraceClientHelper')
     ## v4ping-helper.h: ns3::V4PingHelper [class]
     module.add_class('V4PingHelper')
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper [class]
-    module.add_class('WaveformGeneratorHelper')
     ## wifi-helper.h: ns3::WifiHelper [class]
     module.add_class('WifiHelper')
     ## wifi-helper.h: ns3::WifiMacHelper [class]
@@ -233,7 +223,6 @@
     
 
 def register_methods(root_module):
-    register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, root_module['ns3::AdhocAlohaNoackIdealPhyHelper'])
     register_Ns3AnimationInterface_methods(root_module, root_module['ns3::AnimationInterface'])
     register_Ns3ApplicationContainer_methods(root_module, root_module['ns3::ApplicationContainer'])
     register_Ns3AsciiTraceHelper_methods(root_module, root_module['ns3::AsciiTraceHelper'])
@@ -266,9 +255,6 @@
     register_Ns3PointToPointGridHelper_methods(root_module, root_module['ns3::PointToPointGridHelper'])
     register_Ns3PointToPointHelper_methods(root_module, root_module['ns3::PointToPointHelper'])
     register_Ns3PointToPointStarHelper_methods(root_module, root_module['ns3::PointToPointStarHelper'])
-    register_Ns3SpectrumAnalyzerHelper_methods(root_module, root_module['ns3::SpectrumAnalyzerHelper'])
-    register_Ns3SpectrumChannelHelper_methods(root_module, root_module['ns3::SpectrumChannelHelper'])
-    register_Ns3SpectrumPhyHelper_methods(root_module, root_module['ns3::SpectrumPhyHelper'])
     register_Ns3TapBridgeHelper_methods(root_module, root_module['ns3::TapBridgeHelper'])
     register_Ns3TopologyReaderHelper_methods(root_module, root_module['ns3::TopologyReaderHelper'])
     register_Ns3UdpClientHelper_methods(root_module, root_module['ns3::UdpClientHelper'])
@@ -277,7 +263,6 @@
     register_Ns3UdpServerHelper_methods(root_module, root_module['ns3::UdpServerHelper'])
     register_Ns3UdpTraceClientHelper_methods(root_module, root_module['ns3::UdpTraceClientHelper'])
     register_Ns3V4PingHelper_methods(root_module, root_module['ns3::V4PingHelper'])
-    register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper'])
     register_Ns3WifiHelper_methods(root_module, root_module['ns3::WifiHelper'])
     register_Ns3WifiMacHelper_methods(root_module, root_module['ns3::WifiMacHelper'])
     register_Ns3WifiPhyHelper_methods(root_module, root_module['ns3::WifiPhyHelper'])
@@ -298,52 +283,6 @@
     register_Ns3FlameStack_methods(root_module, root_module['ns3::FlameStack'])
     return
 
-def register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, cls):
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper(ns3::AdhocAlohaNoackIdealPhyHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AdhocAlohaNoackIdealPhyHelper const &', 'arg0')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper() [constructor]
-    cls.add_constructor([])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> noisePsd) [member function]
-    cls.add_method('SetNoisePowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'noisePsd')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    return
-
 def register_Ns3AnimationInterface_methods(root_module, cls):
     ## animation-interface.h: ns3::AnimationInterface::AnimationInterface(ns3::AnimationInterface const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::AnimationInterface const &', 'arg0')])
@@ -1617,109 +1556,6 @@
                    is_const=True)
     return
 
-def register_Ns3SpectrumAnalyzerHelper_methods(root_module, cls):
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper(ns3::SpectrumAnalyzerHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumAnalyzerHelper const &', 'arg0')])
-    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::EnableAsciiAll(std::string prefix) [member function]
-    cls.add_method('EnableAsciiAll', 
-                   'void', 
-                   [param('std::string', 'prefix')])
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetRxSpectrumModel(ns3::Ptr<ns3::SpectrumModel> m) [member function]
-    cls.add_method('SetRxSpectrumModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumModel >', 'm')])
-    return
-
-def register_Ns3SpectrumChannelHelper_methods(root_module, cls):
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper(ns3::SpectrumChannelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumChannelHelper const &', 'arg0')])
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::AddSpectrumPropagationLoss(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('AddSpectrumPropagationLoss', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumChannel> ns3::SpectrumChannelHelper::Create() const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [], 
-                   is_const=True)
-    ## spectrum-helper.h: static ns3::SpectrumChannelHelper ns3::SpectrumChannelHelper::Default() [member function]
-    cls.add_method('Default', 
-                   'ns3::SpectrumChannelHelper', 
-                   [], 
-                   is_static=True)
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetChannel(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetPropagationDelay(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPropagationDelay', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    return
-
-def register_Ns3SpectrumPhyHelper_methods(root_module, cls):
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper() [constructor]
-    cls.add_constructor([])
-    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper(ns3::SpectrumPhyHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPhyHelper const &', 'arg0')])
-    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumPhy> ns3::SpectrumPhyHelper::Create(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::NetDevice> device) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::SpectrumPhy >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], 
-                   is_const=True)
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhy(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    return
-
 def register_Ns3TapBridgeHelper_methods(root_module, cls):
     ## tap-bridge-helper.h: ns3::TapBridgeHelper::TapBridgeHelper(ns3::TapBridgeHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TapBridgeHelper const &', 'arg0')])
@@ -1917,48 +1753,6 @@
                    [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
     return
 
-def register_Ns3WaveformGeneratorHelper_methods(root_module, cls):
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper(ns3::WaveformGeneratorHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WaveformGeneratorHelper const &', 'arg0')])
-    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper() [constructor]
-    cls.add_constructor([])
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(std::string channelName) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('std::string', 'channelName')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('SetPhyAttribute', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
-    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    return
-
 def register_Ns3WifiHelper_methods(root_module, cls):
     ## wifi-helper.h: ns3::WifiHelper::WifiHelper(ns3::WifiHelper const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::WifiHelper const &', 'arg0')])
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_internet_stack.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_internet_stack.py	Tue Feb 08 13:08:45 2011 -0500
@@ -57,6 +57,8 @@
     module.add_class('Icmpv6TimeExceeded', parent=root_module['ns3::Icmpv6Header'])
     ## icmpv6-header.h: ns3::Icmpv6TooBig [class]
     module.add_class('Icmpv6TooBig', parent=root_module['ns3::Icmpv6Header'])
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag [class]
+    module.add_class('Ipv4PacketInfoTag', parent=root_module['ns3::Tag'])
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHeader [class]
     module.add_class('Ipv6ExtensionHeader', parent=root_module['ns3::Header'])
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHopByHopHeader [class]
@@ -75,6 +77,8 @@
     module.add_class('Ipv6OptionPadnHeader', parent=root_module['ns3::Ipv6OptionHeader'])
     ## ipv6-option-header.h: ns3::Ipv6OptionRouterAlertHeader [class]
     module.add_class('Ipv6OptionRouterAlertHeader', parent=root_module['ns3::Ipv6OptionHeader'])
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag [class]
+    module.add_class('Ipv6PacketInfoTag', parent=root_module['ns3::Tag'])
     ## tcp-header.h: ns3::TcpHeader [class]
     module.add_class('TcpHeader', parent=root_module['ns3::Header'])
     ## tcp-header.h: ns3::TcpHeader::Flags_t [enumeration]
@@ -250,6 +254,7 @@
     register_Ns3Icmpv6Redirection_methods(root_module, root_module['ns3::Icmpv6Redirection'])
     register_Ns3Icmpv6TimeExceeded_methods(root_module, root_module['ns3::Icmpv6TimeExceeded'])
     register_Ns3Icmpv6TooBig_methods(root_module, root_module['ns3::Icmpv6TooBig'])
+    register_Ns3Ipv4PacketInfoTag_methods(root_module, root_module['ns3::Ipv4PacketInfoTag'])
     register_Ns3Ipv6ExtensionHeader_methods(root_module, root_module['ns3::Ipv6ExtensionHeader'])
     register_Ns3Ipv6ExtensionHopByHopHeader_methods(root_module, root_module['ns3::Ipv6ExtensionHopByHopHeader'])
     register_Ns3Ipv6ExtensionRoutingHeader_methods(root_module, root_module['ns3::Ipv6ExtensionRoutingHeader'])
@@ -259,6 +264,7 @@
     register_Ns3Ipv6OptionPad1Header_methods(root_module, root_module['ns3::Ipv6OptionPad1Header'])
     register_Ns3Ipv6OptionPadnHeader_methods(root_module, root_module['ns3::Ipv6OptionPadnHeader'])
     register_Ns3Ipv6OptionRouterAlertHeader_methods(root_module, root_module['ns3::Ipv6OptionRouterAlertHeader'])
+    register_Ns3Ipv6PacketInfoTag_methods(root_module, root_module['ns3::Ipv6PacketInfoTag'])
     register_Ns3TcpHeader_methods(root_module, root_module['ns3::TcpHeader'])
     register_Ns3UdpHeader_methods(root_module, root_module['ns3::UdpHeader'])
     register_Ns3ArpCache_methods(root_module, root_module['ns3::ArpCache'])
@@ -1450,6 +1456,79 @@
                    [param('ns3::Ptr< ns3::Packet >', 'p')])
     return
 
+def register_Ns3Ipv4PacketInfoTag_methods(root_module, cls):
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag(ns3::Ipv4PacketInfoTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4PacketInfoTag const &', 'arg0')])
+    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag() [constructor]
+    cls.add_constructor([])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: ns3::TypeId ns3::Ipv4PacketInfoTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetLocalAddress() const [member function]
+    cls.add_method('GetLocalAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetRecvIf() const [member function]
+    cls.add_method('GetRecvIf', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: uint8_t ns3::Ipv4PacketInfoTag::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-packet-info-tag.h: static ns3::TypeId ns3::Ipv4PacketInfoTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetAddress(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetLocalAddress(ns3::Ipv4Address addr) [member function]
+    cls.add_method('SetLocalAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'addr')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
+    cls.add_method('SetRecvIf', 
+                   'void', 
+                   [param('uint32_t', 'ifindex')])
+    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
 def register_Ns3Ipv6ExtensionHeader_methods(root_module, cls):
     ## ipv6-extension-header.h: ns3::Ipv6ExtensionHeader::Ipv6ExtensionHeader(ns3::Ipv6ExtensionHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv6ExtensionHeader const &', 'arg0')])
@@ -1844,6 +1923,79 @@
                    [param('uint16_t', 'value')])
     return
 
+def register_Ns3Ipv6PacketInfoTag_methods(root_module, cls):
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag(ns3::Ipv6PacketInfoTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6PacketInfoTag const &', 'arg0')])
+    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag() [constructor]
+    cls.add_constructor([])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ipv6-packet-info-tag.h: ns3::Ipv6Address ns3::Ipv6PacketInfoTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetHoplimit() const [member function]
+    cls.add_method('GetHoplimit', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: ns3::TypeId ns3::Ipv6PacketInfoTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetRecvIf() const [member function]
+    cls.add_method('GetRecvIf', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetTrafficClass() const [member function]
+    cls.add_method('GetTrafficClass', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-packet-info-tag.h: static ns3::TypeId ns3::Ipv6PacketInfoTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetAddress(ns3::Ipv6Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'addr')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetHoplimit(uint8_t ttl) [member function]
+    cls.add_method('SetHoplimit', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
+    cls.add_method('SetRecvIf', 
+                   'void', 
+                   [param('uint32_t', 'ifindex')])
+    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetTrafficClass(uint8_t tclass) [member function]
+    cls.add_method('SetTrafficClass', 
+                   'void', 
+                   [param('uint8_t', 'tclass')])
+    return
+
 def register_Ns3TcpHeader_methods(root_module, cls):
     ## tcp-header.h: ns3::TcpHeader::TcpHeader(ns3::TcpHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TcpHeader const &', 'arg0')])
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_list_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_list_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,14 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper [class]
+    module.add_class('Ipv4ListRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper [class]
+    module.add_class('Ipv6ListRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting [class]
+    module.add_class('Ipv4ListRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting [class]
+    module.add_class('Ipv6ListRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +103,206 @@
     
 
 def register_methods(root_module):
+    register_Ns3Ipv4ListRoutingHelper_methods(root_module, root_module['ns3::Ipv4ListRoutingHelper'])
+    register_Ns3Ipv6ListRoutingHelper_methods(root_module, root_module['ns3::Ipv6ListRoutingHelper'])
+    register_Ns3Ipv4ListRouting_methods(root_module, root_module['ns3::Ipv4ListRouting'])
+    register_Ns3Ipv6ListRouting_methods(root_module, root_module['ns3::Ipv6ListRouting'])
+    return
+
+def register_Ns3Ipv4ListRoutingHelper_methods(root_module, cls):
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper(ns3::Ipv4ListRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4ListRoutingHelper const &', 'arg0')])
+    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper * ns3::Ipv4ListRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4ListRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing-helper.h: void ns3::Ipv4ListRoutingHelper::Add(ns3::Ipv4RoutingHelper const & routing, int16_t priority) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ipv4RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
+    ## ipv4-list-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv6ListRoutingHelper_methods(root_module, cls):
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper(ns3::Ipv6ListRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6ListRoutingHelper const &', 'arg0')])
+    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper * ns3::Ipv6ListRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv6ListRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing-helper.h: void ns3::Ipv6ListRoutingHelper::Add(ns3::Ipv6RoutingHelper const & routing, int16_t priority) [member function]
+    cls.add_method('Add', 
+                   'void', 
+                   [param('ns3::Ipv6RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
+    ## ipv6-list-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4ListRouting_methods(root_module, cls):
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting(ns3::Ipv4ListRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4ListRouting const &', 'arg0')])
+    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol, int16_t priority) [member function]
+    cls.add_method('AddRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: uint32_t ns3::Ipv4ListRouting::GetNRoutingProtocols() const [member function]
+    cls.add_method('GetNRoutingProtocols', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('uint32_t', 'index'), param('int16_t &', 'priority', direction=2)], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: static ns3::TypeId ns3::Ipv4ListRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3Ipv6ListRouting_methods(root_module, cls):
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting(ns3::Ipv6ListRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6ListRouting const &', 'arg0')])
+    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv6RoutingProtocol> routingProtocol, int16_t priority) [member function]
+    cls.add_method('AddRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: uint32_t ns3::Ipv6ListRouting::GetNRoutingProtocols() const [member function]
+    cls.add_method('GetNRoutingProtocols', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('uint32_t', 'index'), param('int16_t &', 'priority')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-list-routing.h: static ns3::TypeId ns3::Ipv6ListRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyAddRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyRemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: bool ns3::Ipv6ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv6Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
+    cls.add_method('SetIpv6', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_virtual=True)
+    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_lte.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_lte.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,102 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## lte-helper.h: ns3::LteHelper [class]
+    module.add_class('LteHelper')
+    ## lte-helper.h: ns3::LteHelper::NetDeviceType [enumeration]
+    module.add_enum('NetDeviceType', ['DEVICE_TYPE_USER_EQUIPMENT', 'DEVICE_TYPE_ENODEB'], outer_class=root_module['ns3::LteHelper'])
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper [class]
+    module.add_class('LteSpectrumValueHelper')
+    ## lte-mac-header.h: ns3::LteMacHeader [class]
+    module.add_class('LteMacHeader', parent=root_module['ns3::Header'])
+    ## packet-scheduler.h: ns3::PacketScheduler [class]
+    module.add_class('PacketScheduler', parent=root_module['ns3::Object'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance [class]
+    module.add_class('RadioBearerInstance', parent=root_module['ns3::Object'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection [enumeration]
+    module.add_enum('BearerDirection', ['DIRECTION_TYPE_UL', 'DIRECTION_TYPE_DL'], outer_class=root_module['ns3::RadioBearerInstance'])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType [enumeration]
+    module.add_enum('BearerType', ['BEARER_TYPE_SRB1', 'BEARER_TYPE_SRB2', 'BEARER_TYPE_DRB'], outer_class=root_module['ns3::RadioBearerInstance'])
+    ## rlc-entity.h: ns3::RlcEntity [class]
+    module.add_class('RlcEntity', parent=root_module['ns3::Object'])
+    ## rrc-entity.h: ns3::RrcEntity [class]
+    module.add_class('RrcEntity', parent=root_module['ns3::Object'])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler [class]
+    module.add_class('SimplePacketScheduler', parent=root_module['ns3::PacketScheduler'])
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::IdealControlMessage', 'ns3::empty', 'ns3::DefaultDeleter<ns3::IdealControlMessage>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## ue-manager.h: ns3::UeManager [class]
+    module.add_class('UeManager', parent=root_module['ns3::Object'])
+    ## ue-record.h: ns3::UeRecord [class]
+    module.add_class('UeRecord', parent=root_module['ns3::Object'])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback [struct]
+    module.add_class('CqiFeedback', outer_class=root_module['ns3::UeRecord'])
+    ## amc-module.h: ns3::AmcModule [class]
+    module.add_class('AmcModule', parent=root_module['ns3::Object'])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters [class]
+    module.add_class('BearerQosParameters', parent=root_module['ns3::Object'])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType [enumeration]
+    module.add_enum('BearerQosType', ['BEARER_TYPE_GBR', 'BEARER_TYPE_NGBR'], outer_class=root_module['ns3::BearerQosParameters'])
+    ## channel-realization.h: ns3::ChannelRealization [class]
+    module.add_class('ChannelRealization', parent=root_module['ns3::Object'])
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel [class]
+    module.add_class('DiscreteTimeLossModel', parent=root_module['ns3::Object'])
+    ## ideal-control-messages.h: ns3::IdealControlMessage [class]
+    module.add_class('IdealControlMessage', parent=root_module['ns3::SimpleRefCount< ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> >'])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType [enumeration]
+    module.add_enum('MessageType', ['CQI_FEEDBACKS', 'ALLOCATION_MAP'], outer_class=root_module['ns3::IdealControlMessage'])
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel [class]
+    module.add_class('JakesFadingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## lte-mac-queue.h: ns3::LteMacQueue [class]
+    module.add_class('LteMacQueue', parent=root_module['ns3::Object'])
+    ## lte-phy.h: ns3::LtePhy [class]
+    module.add_class('LtePhy', parent=root_module['ns3::Object'])
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel [class]
+    module.add_class('LtePropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy [class]
+    module.add_class('LteSpectrumPhy', parent=root_module['ns3::SpectrumPhy'])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::State [enumeration]
+    module.add_enum('State', ['IDLE', 'TX', 'RX'], outer_class=root_module['ns3::LteSpectrumPhy'])
+    ## mac-entity.h: ns3::MacEntity [class]
+    module.add_class('MacEntity', parent=root_module['ns3::Object'])
+    ## path-loss-model.h: ns3::PathLossModel [class]
+    module.add_class('PathLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage [class]
+    module.add_class('PdcchMapIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::Direction [enumeration]
+    module.add_enum('Direction', ['DOWNLINK', 'UPLINK'], outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord [struct]
+    module.add_class('IdealPdcchRecord', outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
+    ## penetration-loss-model.h: ns3::PenetrationLossModel [class]
+    module.add_class('PenetrationLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel [class]
+    module.add_class('ShadowingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
+    ## ue-phy.h: ns3::UeLtePhy [class]
+    module.add_class('UeLtePhy', parent=root_module['ns3::LtePhy'])
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy [class]
+    module.add_class('UeLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
+    ## ue-mac-entity.h: ns3::UeMacEntity [class]
+    module.add_class('UeMacEntity', parent=root_module['ns3::MacEntity'])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage [class]
+    module.add_class('CqiIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback [struct]
+    module.add_class('CqiFeedback', outer_class=root_module['ns3::CqiIdealControlMessage'])
+    ## enb-phy.h: ns3::EnbLtePhy [class]
+    module.add_class('EnbLtePhy', parent=root_module['ns3::LtePhy'])
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy [class]
+    module.add_class('EnbLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
+    ## enb-mac-entity.h: ns3::EnbMacEntity [class]
+    module.add_class('EnbMacEntity', parent=root_module['ns3::MacEntity'])
+    ## lte-net-device.h: ns3::LteNetDevice [class]
+    module.add_class('LteNetDevice', parent=root_module['ns3::NetDevice'])
+    ## ue-net-device.h: ns3::UeNetDevice [class]
+    module.add_class('UeNetDevice', parent=root_module['ns3::LteNetDevice'])
+    ## enb-net-device.h: ns3::EnbNetDevice [class]
+    module.add_class('EnbNetDevice', parent=root_module['ns3::LteNetDevice'])
+    module.add_container('std::vector< ns3::UeRecord::CqiFeedback >', 'ns3::UeRecord::CqiFeedback', container_type='vector')
+    module.add_container('std::deque< ns3::LteMacQueue::QueueElement >', 'ns3::LteMacQueue::QueueElement', container_type='dequeue')
+    module.add_container('std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord >', 'ns3::PdcchMapIdealControlMessage::IdealPdcchRecord', container_type='list')
+    module.add_container('std::list< ns3::CqiIdealControlMessage::CqiFeedback >', 'ns3::CqiIdealControlMessage::CqiFeedback', container_type='list')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +191,1761 @@
     
 
 def register_methods(root_module):
+    register_Ns3LteHelper_methods(root_module, root_module['ns3::LteHelper'])
+    register_Ns3LteSpectrumValueHelper_methods(root_module, root_module['ns3::LteSpectrumValueHelper'])
+    register_Ns3LteMacHeader_methods(root_module, root_module['ns3::LteMacHeader'])
+    register_Ns3PacketScheduler_methods(root_module, root_module['ns3::PacketScheduler'])
+    register_Ns3RadioBearerInstance_methods(root_module, root_module['ns3::RadioBearerInstance'])
+    register_Ns3RlcEntity_methods(root_module, root_module['ns3::RlcEntity'])
+    register_Ns3RrcEntity_methods(root_module, root_module['ns3::RrcEntity'])
+    register_Ns3SimplePacketScheduler_methods(root_module, root_module['ns3::SimplePacketScheduler'])
+    register_Ns3UeManager_methods(root_module, root_module['ns3::UeManager'])
+    register_Ns3UeRecord_methods(root_module, root_module['ns3::UeRecord'])
+    register_Ns3UeRecordCqiFeedback_methods(root_module, root_module['ns3::UeRecord::CqiFeedback'])
+    register_Ns3AmcModule_methods(root_module, root_module['ns3::AmcModule'])
+    register_Ns3BearerQosParameters_methods(root_module, root_module['ns3::BearerQosParameters'])
+    register_Ns3ChannelRealization_methods(root_module, root_module['ns3::ChannelRealization'])
+    register_Ns3DiscreteTimeLossModel_methods(root_module, root_module['ns3::DiscreteTimeLossModel'])
+    register_Ns3IdealControlMessage_methods(root_module, root_module['ns3::IdealControlMessage'])
+    register_Ns3JakesFadingLossModel_methods(root_module, root_module['ns3::JakesFadingLossModel'])
+    register_Ns3LteMacQueue_methods(root_module, root_module['ns3::LteMacQueue'])
+    register_Ns3LtePhy_methods(root_module, root_module['ns3::LtePhy'])
+    register_Ns3LtePropagationLossModel_methods(root_module, root_module['ns3::LtePropagationLossModel'])
+    register_Ns3LteSpectrumPhy_methods(root_module, root_module['ns3::LteSpectrumPhy'])
+    register_Ns3MacEntity_methods(root_module, root_module['ns3::MacEntity'])
+    register_Ns3PathLossModel_methods(root_module, root_module['ns3::PathLossModel'])
+    register_Ns3PdcchMapIdealControlMessage_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage'])
+    register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage::IdealPdcchRecord'])
+    register_Ns3PenetrationLossModel_methods(root_module, root_module['ns3::PenetrationLossModel'])
+    register_Ns3ShadowingLossModel_methods(root_module, root_module['ns3::ShadowingLossModel'])
+    register_Ns3UeLtePhy_methods(root_module, root_module['ns3::UeLtePhy'])
+    register_Ns3UeLteSpectrumPhy_methods(root_module, root_module['ns3::UeLteSpectrumPhy'])
+    register_Ns3UeMacEntity_methods(root_module, root_module['ns3::UeMacEntity'])
+    register_Ns3CqiIdealControlMessage_methods(root_module, root_module['ns3::CqiIdealControlMessage'])
+    register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, root_module['ns3::CqiIdealControlMessage::CqiFeedback'])
+    register_Ns3EnbLtePhy_methods(root_module, root_module['ns3::EnbLtePhy'])
+    register_Ns3EnbLteSpectrumPhy_methods(root_module, root_module['ns3::EnbLteSpectrumPhy'])
+    register_Ns3EnbMacEntity_methods(root_module, root_module['ns3::EnbMacEntity'])
+    register_Ns3LteNetDevice_methods(root_module, root_module['ns3::LteNetDevice'])
+    register_Ns3UeNetDevice_methods(root_module, root_module['ns3::UeNetDevice'])
+    register_Ns3EnbNetDevice_methods(root_module, root_module['ns3::EnbNetDevice'])
+    return
+
+def register_Ns3LteHelper_methods(root_module, cls):
+    ## lte-helper.h: ns3::LteHelper::LteHelper(ns3::LteHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteHelper const &', 'arg0')])
+    ## lte-helper.h: ns3::LteHelper::LteHelper() [constructor]
+    cls.add_constructor([])
+    ## lte-helper.h: void ns3::LteHelper::AddDownlinkChannelRealization(ns3::Ptr<ns3::MobilityModel> enbMobility, ns3::Ptr<ns3::MobilityModel> ueMobility, ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('AddDownlinkChannelRealization', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel >', 'ueMobility'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## lte-helper.h: void ns3::LteHelper::AddMobility(ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::MobilityModel> m) [member function]
+    cls.add_method('AddMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::MobilityModel >', 'm')])
+    ## lte-helper.h: void ns3::LteHelper::EnableLogComponents() [member function]
+    cls.add_method('EnableLogComponents', 
+                   'void', 
+                   [])
+    ## lte-helper.h: ns3::NetDeviceContainer ns3::LteHelper::Install(ns3::NodeContainer c, ns3::LteHelper::NetDeviceType type) [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c'), param('ns3::LteHelper::NetDeviceType', 'type')])
+    ## lte-helper.h: void ns3::LteHelper::RegisterUeToTheEnb(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('RegisterUeToTheEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    return
+
+def register_Ns3LteSpectrumValueHelper_methods(root_module, cls):
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper() [constructor]
+    cls.add_constructor([])
+    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper(ns3::LteSpectrumValueHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteSpectrumValueHelper const &', 'arg0')])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkNoisePowerSpectralDensity() [member function]
+    cls.add_method('CreateDownlinkNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
+    cls.add_method('CreateDownlinkTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkNoisePowerSpectralDensity() [member function]
+    cls.add_method('CreateUplinkNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [])
+    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
+    cls.add_method('CreateUplinkTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
+    return
+
+def register_Ns3LteMacHeader_methods(root_module, cls):
+    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader() [constructor]
+    cls.add_constructor([])
+    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader(ns3::LteMacHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteMacHeader const &', 'arg0')])
+    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Mac48Address', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-header.h: ns3::TypeId ns3::LteMacHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Mac48Address', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-header.h: static ns3::TypeId ns3::LteMacHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## lte-mac-header.h: void ns3::LteMacHeader::SetDestination(ns3::Mac48Address destination) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'destination')])
+    ## lte-mac-header.h: void ns3::LteMacHeader::SetSource(ns3::Mac48Address source) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Mac48Address', 'source')])
+    return
+
+def register_Ns3PacketScheduler_methods(root_module, cls):
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::PacketScheduler const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PacketScheduler const &', 'arg0')])
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler() [constructor]
+    cls.add_constructor([])
+    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## packet-scheduler.h: void ns3::PacketScheduler::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## packet-scheduler.h: void ns3::PacketScheduler::DoRunPacketScheduler() [member function]
+    cls.add_method('DoRunPacketScheduler', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## packet-scheduler.h: ns3::Ptr<ns3::EnbNetDevice> ns3::PacketScheduler::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::EnbNetDevice >', 
+                   [])
+    ## packet-scheduler.h: ns3::Ptr<ns3::MacEntity> ns3::PacketScheduler::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::MacEntity >', 
+                   [])
+    ## packet-scheduler.h: static ns3::TypeId ns3::PacketScheduler::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## packet-scheduler.h: void ns3::PacketScheduler::RunPacketScheduler() [member function]
+    cls.add_method('RunPacketScheduler', 
+                   'void', 
+                   [])
+    ## packet-scheduler.h: void ns3::PacketScheduler::SetDevice(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## packet-scheduler.h: void ns3::PacketScheduler::SetMacEntity(ns3::Ptr<ns3::MacEntity> mac) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MacEntity >', 'mac')])
+    return
+
+def register_Ns3RadioBearerInstance_methods(root_module, cls):
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance(ns3::RadioBearerInstance const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RadioBearerInstance const &', 'arg0')])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance() [constructor]
+    cls.add_constructor([])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue(uint32_t availableByte) [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'availableByte')])
+    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection ns3::RadioBearerInstance::GetBearerDirection() const [member function]
+    cls.add_method('GetBearerDirection', 
+                   'ns3::RadioBearerInstance::BearerDirection', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType ns3::RadioBearerInstance::GetBearerType() const [member function]
+    cls.add_method('GetBearerType', 
+                   'ns3::RadioBearerInstance::BearerType', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::IpcsClassifierRecord * ns3::RadioBearerInstance::GetIpcsClassifierRecord() [member function]
+    cls.add_method('GetIpcsClassifierRecord', 
+                   'ns3::IpcsClassifierRecord *', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::BearerQosParameters> ns3::RadioBearerInstance::GetQosParameters() [member function]
+    cls.add_method('GetQosParameters', 
+                   'ns3::Ptr< ns3::BearerQosParameters >', 
+                   [])
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::LteMacQueue> ns3::RadioBearerInstance::GetQueue() const [member function]
+    cls.add_method('GetQueue', 
+                   'ns3::Ptr< ns3::LteMacQueue >', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: ns3::Ptr<ns3::RlcEntity> ns3::RadioBearerInstance::GetRlcEntity() [member function]
+    cls.add_method('GetRlcEntity', 
+                   'ns3::Ptr< ns3::RlcEntity >', 
+                   [])
+    ## radio-bearer-instance.h: static ns3::TypeId ns3::RadioBearerInstance::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::HasPackets() const [member function]
+    cls.add_method('HasPackets', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerDirection(ns3::RadioBearerInstance::BearerDirection direction) [member function]
+    cls.add_method('SetBearerDirection', 
+                   'void', 
+                   [param('ns3::RadioBearerInstance::BearerDirection', 'direction')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerType(ns3::RadioBearerInstance::BearerType type) [member function]
+    cls.add_method('SetBearerType', 
+                   'void', 
+                   [param('ns3::RadioBearerInstance::BearerType', 'type')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetIpcsClassifierRecord(ns3::IpcsClassifierRecord * c) [member function]
+    cls.add_method('SetIpcsClassifierRecord', 
+                   'void', 
+                   [param('ns3::IpcsClassifierRecord *', 'c')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetQosParameters(ns3::Ptr<ns3::BearerQosParameters> qosParameters) [member function]
+    cls.add_method('SetQosParameters', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::BearerQosParameters >', 'qosParameters')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetRlcEntity(ns3::Ptr<ns3::RlcEntity> rlc) [member function]
+    cls.add_method('SetRlcEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RlcEntity >', 'rlc')])
+    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RlcEntity_methods(root_module, cls):
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::RlcEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RlcEntity const &', 'arg0')])
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity() [constructor]
+    cls.add_constructor([])
+    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## rlc-entity.h: ns3::Ptr<ns3::Packet> ns3::RlcEntity::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## rlc-entity.h: void ns3::RlcEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rlc-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::RlcEntity::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## rlc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RlcEntity::GetRadioBearer() [member function]
+    cls.add_method('GetRadioBearer', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [])
+    ## rlc-entity.h: static ns3::TypeId ns3::RlcEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rlc-entity.h: void ns3::RlcEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## rlc-entity.h: void ns3::RlcEntity::SetRadioBearer(ns3::Ptr<ns3::RadioBearerInstance> b) [member function]
+    cls.add_method('SetRadioBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'b')])
+    return
+
+def register_Ns3RrcEntity_methods(root_module, cls):
+    ## rrc-entity.h: ns3::RrcEntity::RrcEntity(ns3::RrcEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RrcEntity const &', 'arg0')])
+    ## rrc-entity.h: ns3::RrcEntity::RrcEntity() [constructor]
+    cls.add_constructor([])
+    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddDownlinkGbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddDownlinkNgbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddUplinkGbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
+    cls.add_method('AddUplinkNgbrBearer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
+    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::Classify(ns3::Ptr<ns3::Packet> p) const [member function]
+    cls.add_method('Classify', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   is_const=True)
+    ## rrc-entity.h: void ns3::RrcEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::GetDefaultBearer() [member function]
+    cls.add_method('GetDefaultBearer', 
+                   'ns3::Ptr< ns3::RadioBearerInstance >', 
+                   [])
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkGbrBearers() const [member function]
+    cls.add_method('GetDownlinkGbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkNgbrBearers() const [member function]
+    cls.add_method('GetDownlinkNgbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: static ns3::TypeId ns3::RrcEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkGbrBearers() const [member function]
+    cls.add_method('GetUplinkGbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkNgbrBearers() const [member function]
+    cls.add_method('GetUplinkNgbrBearers', 
+                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SimplePacketScheduler_methods(root_module, cls):
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::SimplePacketScheduler const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SimplePacketScheduler const &', 'arg0')])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler() [constructor]
+    cls.add_constructor([])
+    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## simple-packet-scheduler.h: void ns3::SimplePacketScheduler::DoRunPacketScheduler() [member function]
+    cls.add_method('DoRunPacketScheduler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## simple-packet-scheduler.h: static ns3::TypeId ns3::SimplePacketScheduler::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UeManager_methods(root_module, cls):
+    ## ue-manager.h: ns3::UeManager::UeManager(ns3::UeManager const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeManager const &', 'arg0')])
+    ## ue-manager.h: ns3::UeManager::UeManager() [constructor]
+    cls.add_constructor([])
+    ## ue-manager.h: void ns3::UeManager::CreateUeRecord(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('CreateUeRecord', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
+    cls.add_method('DeleteUeRecord', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
+    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Mac48Address const & macAddress) [member function]
+    cls.add_method('DeleteUeRecord', 
+                   'void', 
+                   [param('ns3::Mac48Address const &', 'macAddress')])
+    ## ue-manager.h: uint32_t ns3::UeManager::GetNRegisteredUes() const [member function]
+    cls.add_method('GetNRegisteredUes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
+    cls.add_method('GetUeRecord', 
+                   'ns3::Ptr< ns3::UeRecord >', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
+    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Mac48Address const macAddress) [member function]
+    cls.add_method('GetUeRecord', 
+                   'ns3::Ptr< ns3::UeRecord >', 
+                   [param('ns3::Mac48Address const', 'macAddress')])
+    ## ue-manager.h: std::vector<ns3::Ptr<ns3::UeRecord>,std::allocator<ns3::Ptr<ns3::UeRecord> > > * ns3::UeManager::GetUeRecords() [member function]
+    cls.add_method('GetUeRecords', 
+                   'std::vector< ns3::Ptr< ns3::UeRecord > > *', 
+                   [])
+    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Ptr<ns3::UeNetDevice> ue) const [member function]
+    cls.add_method('IsRegistered', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')], 
+                   is_const=True)
+    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Mac48Address const & macAddress) const [member function]
+    cls.add_method('IsRegistered', 
+                   'bool', 
+                   [param('ns3::Mac48Address const &', 'macAddress')], 
+                   is_const=True)
+    return
+
+def register_Ns3UeRecord_methods(root_module, cls):
+    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::UeRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeRecord const &', 'arg0')])
+    ## ue-record.h: ns3::UeRecord::UeRecord() [constructor]
+    cls.add_constructor([])
+    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::Ptr<ns3::NetDevice> ue, ns3::Ptr<ns3::NetDevice> enb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'ue'), param('ns3::Ptr< ns3::NetDevice >', 'enb')])
+    ## ue-record.h: std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > ns3::UeRecord::GetCqiFeedbacks() [member function]
+    cls.add_method('GetCqiFeedbacks', 
+                   'std::vector< ns3::UeRecord::CqiFeedback >', 
+                   [])
+    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetEnb() [member function]
+    cls.add_method('GetEnb', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetUe() [member function]
+    cls.add_method('GetUe', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## ue-record.h: void ns3::UeRecord::SetCqiFeedbacks(std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > cqiFeedbacks) [member function]
+    cls.add_method('SetCqiFeedbacks', 
+                   'void', 
+                   [param('std::vector< ns3::UeRecord::CqiFeedback >', 'cqiFeedbacks')])
+    ## ue-record.h: void ns3::UeRecord::SetEnb(ns3::Ptr<ns3::NetDevice> enb) [member function]
+    cls.add_method('SetEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'enb')])
+    ## ue-record.h: void ns3::UeRecord::SetUe(ns3::Ptr<ns3::NetDevice> ue) [member function]
+    cls.add_method('SetUe', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'ue')])
+    return
+
+def register_Ns3UeRecordCqiFeedback_methods(root_module, cls):
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback() [constructor]
+    cls.add_constructor([])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback(ns3::UeRecord::CqiFeedback const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeRecord::CqiFeedback const &', 'arg0')])
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_cqi [variable]
+    cls.add_instance_attribute('m_cqi', 'int', is_const=False)
+    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_subChannelId [variable]
+    cls.add_instance_attribute('m_subChannelId', 'int', is_const=False)
+    return
+
+def register_Ns3AmcModule_methods(root_module, cls):
+    ## amc-module.h: ns3::AmcModule::AmcModule(ns3::AmcModule const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AmcModule const &', 'arg0')])
+    ## amc-module.h: ns3::AmcModule::AmcModule() [constructor]
+    cls.add_constructor([])
+    ## amc-module.h: std::vector<int, std::allocator<int> > ns3::AmcModule::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'std::vector< int >', 
+                   [param('std::vector< double >', 'sinr')])
+    ## amc-module.h: int ns3::AmcModule::GetMcsFromCqi(int cqi) [member function]
+    cls.add_method('GetMcsFromCqi', 
+                   'int', 
+                   [param('int', 'cqi')])
+    ## amc-module.h: double ns3::AmcModule::GetSpectralEfficiencyFromCqi(int cqi) [member function]
+    cls.add_method('GetSpectralEfficiencyFromCqi', 
+                   'double', 
+                   [param('int', 'cqi')])
+    ## amc-module.h: int ns3::AmcModule::GetTbSizeFromMcs(int mcs) [member function]
+    cls.add_method('GetTbSizeFromMcs', 
+                   'int', 
+                   [param('int', 'mcs')])
+    ## amc-module.h: static ns3::TypeId ns3::AmcModule::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## amc-module.h: void ns3::AmcModule::Initialize() [member function]
+    cls.add_method('Initialize', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3BearerQosParameters_methods(root_module, cls):
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(ns3::BearerQosParameters const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BearerQosParameters const &', 'arg0')])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters() [constructor]
+    cls.add_constructor([])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, double gbr, double mbr) [constructor]
+    cls.add_constructor([param('int', 'qci'), param('double', 'gbr'), param('double', 'mbr')])
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, bool apec, bool apev, double gbr, double mbr) [constructor]
+    cls.add_constructor([param('int', 'qci'), param('bool', 'apec'), param('bool', 'apev'), param('double', 'gbr'), param('double', 'mbr')])
+    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionCapability() const [member function]
+    cls.add_method('GetArpPreEmptionCapability', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionVulnerability() const [member function]
+    cls.add_method('GetArpPreEmptionVulnerability', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType ns3::BearerQosParameters::GetBearerQosType() const [member function]
+    cls.add_method('GetBearerQosType', 
+                   'ns3::BearerQosParameters::BearerQosType', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetGbr() const [member function]
+    cls.add_method('GetGbr', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMaxDelay() const [member function]
+    cls.add_method('GetMaxDelay', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMbr() const [member function]
+    cls.add_method('GetMbr', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: int ns3::BearerQosParameters::GetQci() const [member function]
+    cls.add_method('GetQci', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionCapability(bool apec) [member function]
+    cls.add_method('SetArpPreEmptionCapability', 
+                   'void', 
+                   [param('bool', 'apec')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionVulnerability(bool apev) [member function]
+    cls.add_method('SetArpPreEmptionVulnerability', 
+                   'void', 
+                   [param('bool', 'apev')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetBearerQosType(ns3::BearerQosParameters::BearerQosType QosType) [member function]
+    cls.add_method('SetBearerQosType', 
+                   'void', 
+                   [param('ns3::BearerQosParameters::BearerQosType', 'QosType')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetGbr(double gbr) [member function]
+    cls.add_method('SetGbr', 
+                   'void', 
+                   [param('double', 'gbr')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMaxDelay(double targetDelay) [member function]
+    cls.add_method('SetMaxDelay', 
+                   'void', 
+                   [param('double', 'targetDelay')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMbr(double mbr) [member function]
+    cls.add_method('SetMbr', 
+                   'void', 
+                   [param('double', 'mbr')])
+    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetQci(int qci) [member function]
+    cls.add_method('SetQci', 
+                   'void', 
+                   [param('int', 'qci')])
+    return
+
+def register_Ns3ChannelRealization_methods(root_module, cls):
+    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization(ns3::ChannelRealization const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ChannelRealization const &', 'arg0')])
+    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization() [constructor]
+    cls.add_constructor([])
+    ## channel-realization.h: ns3::Ptr<ns3::JakesFadingLossModel> ns3::ChannelRealization::GetJakesFadingLossModel() [member function]
+    cls.add_method('GetJakesFadingLossModel', 
+                   'ns3::Ptr< ns3::JakesFadingLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::PathLossModel> ns3::ChannelRealization::GetPathLossModel() [member function]
+    cls.add_method('GetPathLossModel', 
+                   'ns3::Ptr< ns3::PathLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::PenetrationLossModel> ns3::ChannelRealization::GetPenetrationLossModel() [member function]
+    cls.add_method('GetPenetrationLossModel', 
+                   'ns3::Ptr< ns3::PenetrationLossModel >', 
+                   [])
+    ## channel-realization.h: ns3::Ptr<ns3::ShadowingLossModel> ns3::ChannelRealization::GetShadowingLossModel() [member function]
+    cls.add_method('GetShadowingLossModel', 
+                   'ns3::Ptr< ns3::ShadowingLossModel >', 
+                   [])
+    ## channel-realization.h: static ns3::TypeId ns3::ChannelRealization::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## channel-realization.h: void ns3::ChannelRealization::SetJakesFadingLossModel(ns3::Ptr<ns3::JakesFadingLossModel> l) [member function]
+    cls.add_method('SetJakesFadingLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::JakesFadingLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetPathLossModel(ns3::Ptr<ns3::PathLossModel> l) [member function]
+    cls.add_method('SetPathLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PathLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetPenetrationLossModel(ns3::Ptr<ns3::PenetrationLossModel> l) [member function]
+    cls.add_method('SetPenetrationLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PenetrationLossModel >', 'l')])
+    ## channel-realization.h: void ns3::ChannelRealization::SetShadowingLossModel(ns3::Ptr<ns3::ShadowingLossModel> l) [member function]
+    cls.add_method('SetShadowingLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::ShadowingLossModel >', 'l')])
+    return
+
+def register_Ns3DiscreteTimeLossModel_methods(root_module, cls):
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel(ns3::DiscreteTimeLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::DiscreteTimeLossModel const &', 'arg0')])
+    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel() [constructor]
+    cls.add_constructor([])
+    ## discrete-time-loss-model.h: ns3::Time ns3::DiscreteTimeLossModel::GetLastUpdate() [member function]
+    cls.add_method('GetLastUpdate', 
+                   'ns3::Time', 
+                   [])
+    ## discrete-time-loss-model.h: double ns3::DiscreteTimeLossModel::GetSamplingPeriod() [member function]
+    cls.add_method('GetSamplingPeriod', 
+                   'double', 
+                   [])
+    ## discrete-time-loss-model.h: static ns3::TypeId ns3::DiscreteTimeLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## discrete-time-loss-model.h: bool ns3::DiscreteTimeLossModel::NeedForUpdate() [member function]
+    cls.add_method('NeedForUpdate', 
+                   'bool', 
+                   [])
+    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetLastUpdate() [member function]
+    cls.add_method('SetLastUpdate', 
+                   'void', 
+                   [])
+    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetSamplingPeriod(double sp) [member function]
+    cls.add_method('SetSamplingPeriod', 
+                   'void', 
+                   [param('double', 'sp')])
+    return
+
+def register_Ns3IdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage(ns3::IdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::IdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetDestinationDevice() [member function]
+    cls.add_method('GetDestinationDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType ns3::IdealControlMessage::GetMessageType() [member function]
+    cls.add_method('GetMessageType', 
+                   'ns3::IdealControlMessage::MessageType', 
+                   [])
+    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetSourceDevice() [member function]
+    cls.add_method('GetSourceDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetDestinationDevice(ns3::Ptr<ns3::LteNetDevice> dst) [member function]
+    cls.add_method('SetDestinationDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'dst')])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetMessageType(ns3::IdealControlMessage::MessageType type) [member function]
+    cls.add_method('SetMessageType', 
+                   'void', 
+                   [param('ns3::IdealControlMessage::MessageType', 'type')])
+    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetSourceDevice(ns3::Ptr<ns3::LteNetDevice> src) [member function]
+    cls.add_method('SetSourceDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'src')])
+    return
+
+def register_Ns3JakesFadingLossModel_methods(root_module, cls):
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel(ns3::JakesFadingLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::JakesFadingLossModel const &', 'arg0')])
+    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel() [constructor]
+    cls.add_constructor([])
+    ## jakes-fading-loss-model.h: ns3::Ptr<ns3::LtePhy> ns3::JakesFadingLossModel::GetPhy() [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::LtePhy >', 
+                   [])
+    ## jakes-fading-loss-model.h: static ns3::TypeId ns3::JakesFadingLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## jakes-fading-loss-model.h: double ns3::JakesFadingLossModel::GetValue(int subChannel) [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [param('int', 'subChannel')])
+    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetValue() [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3LteMacQueue_methods(root_module, cls):
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(ns3::LteMacQueue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteMacQueue const &', 'arg0')])
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue() [constructor]
+    cls.add_constructor([])
+    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(uint32_t maxSize) [constructor]
+    cls.add_constructor([param('uint32_t', 'maxSize')])
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue() [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue(uint32_t availableByte) [member function]
+    cls.add_method('Dequeue', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'availableByte')])
+    ## lte-mac-queue.h: bool ns3::LteMacQueue::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetMaxSize() const [member function]
+    cls.add_method('GetMaxSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetNBytes() const [member function]
+    cls.add_method('GetNBytes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: std::deque<ns3::LteMacQueue::QueueElement, std::allocator<ns3::LteMacQueue::QueueElement> > const & ns3::LteMacQueue::GetPacketQueue() const [member function]
+    cls.add_method('GetPacketQueue', 
+                   'std::deque< ns3::LteMacQueue::QueueElement > const &', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetQueueLengthWithMACOverhead() [member function]
+    cls.add_method('GetQueueLengthWithMACOverhead', 
+                   'uint32_t', 
+                   [])
+    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetSize() const [member function]
+    cls.add_method('GetSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: static ns3::TypeId ns3::LteMacQueue::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-mac-queue.h: bool ns3::LteMacQueue::IsEmpty() const [member function]
+    cls.add_method('IsEmpty', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Peek() const [member function]
+    cls.add_method('Peek', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## lte-mac-queue.h: void ns3::LteMacQueue::SetMaxSize(uint32_t maxSize) [member function]
+    cls.add_method('SetMaxSize', 
+                   'void', 
+                   [param('uint32_t', 'maxSize')])
+    return
+
+def register_Ns3LtePhy_methods(root_module, cls):
+    ## lte-phy.h: ns3::LtePhy::LtePhy(ns3::LtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LtePhy const &', 'arg0')])
+    ## lte-phy.h: ns3::LtePhy::LtePhy() [constructor]
+    cls.add_constructor([])
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoSetDownlinkSubChannels() [member function]
+    cls.add_method('DoSetDownlinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::DoSetUplinkSubChannels() [member function]
+    cls.add_method('DoSetUplinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-phy.h: ns3::Ptr<ns3::LteNetDevice> ns3::LtePhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetDownlinkChannel() [member function]
+    cls.add_method('GetDownlinkChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetDownlinkSpectrumPhy() [member function]
+    cls.add_method('GetDownlinkSpectrumPhy', 
+                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
+                   [])
+    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetDownlinkSubChannels() [member function]
+    cls.add_method('GetDownlinkSubChannels', 
+                   'std::vector< int >', 
+                   [])
+    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrFrames() const [member function]
+    cls.add_method('GetNrFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrSubFrames() const [member function]
+    cls.add_method('GetNrSubFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: double ns3::LtePhy::GetTti() const [member function]
+    cls.add_method('GetTti', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## lte-phy.h: double ns3::LtePhy::GetTxPower() [member function]
+    cls.add_method('GetTxPower', 
+                   'double', 
+                   [])
+    ## lte-phy.h: static ns3::TypeId ns3::LtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetUplinkChannel() [member function]
+    cls.add_method('GetUplinkChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetUplinkSpectrumPhy() [member function]
+    cls.add_method('GetUplinkSpectrumPhy', 
+                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
+                   [])
+    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetUplinkSubChannels() [member function]
+    cls.add_method('GetUplinkSubChannels', 
+                   'std::vector< int >', 
+                   [])
+    ## lte-phy.h: void ns3::LtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: bool ns3::LtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-phy.h: void ns3::LtePhy::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetDownlinkChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
+    cls.add_method('SetDownlinkSpectrumPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
+    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetDownlinkSubChannels', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    ## lte-phy.h: void ns3::LtePhy::SetNrFrames(uint32_t nrFrames) [member function]
+    cls.add_method('SetNrFrames', 
+                   'void', 
+                   [param('uint32_t', 'nrFrames')])
+    ## lte-phy.h: void ns3::LtePhy::SetNrSubFrames(uint32_t nrSubFrames) [member function]
+    cls.add_method('SetNrSubFrames', 
+                   'void', 
+                   [param('uint32_t', 'nrSubFrames')])
+    ## lte-phy.h: void ns3::LtePhy::SetTti(double tti) [member function]
+    cls.add_method('SetTti', 
+                   'void', 
+                   [param('double', 'tti')])
+    ## lte-phy.h: void ns3::LtePhy::SetTxPower(double pw) [member function]
+    cls.add_method('SetTxPower', 
+                   'void', 
+                   [param('double', 'pw')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetUplinkChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
+    cls.add_method('SetUplinkSpectrumPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
+    ## lte-phy.h: void ns3::LtePhy::SetUplinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetUplinkSubChannels', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    return
+
+def register_Ns3LtePropagationLossModel_methods(root_module, cls):
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel(ns3::LtePropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LtePropagationLossModel const &', 'arg0')])
+    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## lte-propagation-loss-model.h: void ns3::LtePropagationLossModel::CreateChannelRealization(ns3::Ptr<const ns3::MobilityModel> enbMobility, ns3::Ptr<const ns3::MobilityModel> ueMobility) [member function]
+    cls.add_method('CreateChannelRealization', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel const >', 'ueMobility')])
+    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::ChannelRealization> ns3::LtePropagationLossModel::GetChannelRealization(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetChannelRealization', 
+                   'ns3::Ptr< ns3::ChannelRealization >', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True)
+    ## lte-propagation-loss-model.h: static ns3::TypeId ns3::LtePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LteSpectrumPhy_methods(root_module, cls):
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy(ns3::LteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::LteSpectrumPhy const &', 'arg0')])
+    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LteSpectrumPhy::GetChannel() [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [])
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetMobility() [member function]
+    cls.add_method('GetMobility', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumValue const> ns3::LteSpectrumPhy::GetNoisePowerSpectralDensity() [member function]
+    cls.add_method('GetNoisePowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue const >', 
+                   [])
+    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::LteSpectrumPhy::GetRxSpectrumModel() const [member function]
+    cls.add_method('GetRxSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-spectrum-phy.h: ns3::SpectrumType ns3::LteSpectrumPhy::GetSpectrumType() [member function]
+    cls.add_method('GetSpectrumType', 
+                   'ns3::SpectrumType', 
+                   [])
+    ## lte-spectrum-phy.h: static ns3::TypeId ns3::LteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'd')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
+    cls.add_method('SetMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'm')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> noisePsd) [member function]
+    cls.add_method('SetNoisePowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndErrorCallback(ns3::PhyMacRxEndErrorCallback c) [member function]
+    cls.add_method('SetPhyMacRxEndErrorCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxEndErrorCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndOkCallback(ns3::PhyMacRxEndOkCallback c) [member function]
+    cls.add_method('SetPhyMacRxEndOkCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxEndOkCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxStartCallback(ns3::PhyMacRxStartCallback c) [member function]
+    cls.add_method('SetPhyMacRxStartCallback', 
+                   'void', 
+                   [param('ns3::PhyMacRxStartCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacTxEndCallback(ns3::PhyMacTxEndCallback c) [member function]
+    cls.add_method('SetPhyMacTxEndCallback', 
+                   'void', 
+                   [param('ns3::PhyMacTxEndCallback', 'c')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetState(ns3::LteSpectrumPhy::State newState) [member function]
+    cls.add_method('SetState', 
+                   'void', 
+                   [param('ns3::LteSpectrumPhy::State', 'newState')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> pb, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
+    cls.add_method('StartRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## lte-spectrum-phy.h: bool ns3::LteSpectrumPhy::StartTx(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('StartTx', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')])
+    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::EndRx() [member function]
+    cls.add_method('EndRx', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3MacEntity_methods(root_module, cls):
+    ## mac-entity.h: ns3::MacEntity::MacEntity(ns3::MacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::MacEntity const &', 'arg0')])
+    ## mac-entity.h: ns3::MacEntity::MacEntity() [constructor]
+    cls.add_constructor([])
+    ## mac-entity.h: void ns3::MacEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## mac-entity.h: ns3::Ptr<ns3::AmcModule> ns3::MacEntity::GetAmcModule() const [member function]
+    cls.add_method('GetAmcModule', 
+                   'ns3::Ptr< ns3::AmcModule >', 
+                   [], 
+                   is_const=True)
+    ## mac-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::MacEntity::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::LteNetDevice >', 
+                   [])
+    ## mac-entity.h: static ns3::TypeId ns3::MacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## mac-entity.h: void ns3::MacEntity::SetAmcModule(ns3::Ptr<ns3::AmcModule> amcModule) [member function]
+    cls.add_method('SetAmcModule', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::AmcModule >', 'amcModule')])
+    ## mac-entity.h: void ns3::MacEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    return
+
+def register_Ns3PathLossModel_methods(root_module, cls):
+    ## path-loss-model.h: ns3::PathLossModel::PathLossModel(ns3::PathLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PathLossModel const &', 'arg0')])
+    ## path-loss-model.h: ns3::PathLossModel::PathLossModel() [constructor]
+    cls.add_constructor([])
+    ## path-loss-model.h: static ns3::TypeId ns3::PathLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## path-loss-model.h: double ns3::PathLossModel::GetValue(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')])
+    ## path-loss-model.h: void ns3::PathLossModel::SetValue(double pl) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'pl')])
+    return
+
+def register_Ns3PdcchMapIdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage(ns3::PdcchMapIdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: void ns3::PdcchMapIdealControlMessage::AddNewRecord(ns3::PdcchMapIdealControlMessage::Direction direction, int subChannel, ns3::Ptr<ns3::LteNetDevice> ue, double mcs) [member function]
+    cls.add_method('AddNewRecord', 
+                   'void', 
+                   [param('ns3::PdcchMapIdealControlMessage::Direction', 'direction'), param('int', 'subChannel'), param('ns3::Ptr< ns3::LteNetDevice >', 'ue'), param('double', 'mcs')])
+    ## ideal-control-messages.h: std::list<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord,std::allocator<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord> > * ns3::PdcchMapIdealControlMessage::GetMessage() [member function]
+    cls.add_method('GetMessage', 
+                   'std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord > *', 
+                   [])
+    return
+
+def register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord(ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_direction [variable]
+    cls.add_instance_attribute('m_direction', 'ns3::PdcchMapIdealControlMessage::Direction', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_idSubChannel [variable]
+    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_mcsIndex [variable]
+    cls.add_instance_attribute('m_mcsIndex', 'double', is_const=False)
+    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_ue [variable]
+    cls.add_instance_attribute('m_ue', 'ns3::Ptr< ns3::LteNetDevice >', is_const=False)
+    return
+
+def register_Ns3PenetrationLossModel_methods(root_module, cls):
+    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel(ns3::PenetrationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PenetrationLossModel const &', 'arg0')])
+    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel() [constructor]
+    cls.add_constructor([])
+    ## penetration-loss-model.h: static ns3::TypeId ns3::PenetrationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## penetration-loss-model.h: double ns3::PenetrationLossModel::GetValue() [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [])
+    ## penetration-loss-model.h: void ns3::PenetrationLossModel::SetValue(double pnl) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'pnl')])
+    return
+
+def register_Ns3ShadowingLossModel_methods(root_module, cls):
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(ns3::ShadowingLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ShadowingLossModel const &', 'arg0')])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel() [constructor]
+    cls.add_constructor([])
+    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(double mu, double sigma, double samplingPeriod) [constructor]
+    cls.add_constructor([param('double', 'mu'), param('double', 'sigma'), param('double', 'samplingPeriod')])
+    ## shadowing-loss-model.h: static ns3::TypeId ns3::ShadowingLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## shadowing-loss-model.h: double ns3::ShadowingLossModel::GetValue() [member function]
+    cls.add_method('GetValue', 
+                   'double', 
+                   [])
+    ## shadowing-loss-model.h: void ns3::ShadowingLossModel::SetValue(double sh) [member function]
+    cls.add_method('SetValue', 
+                   'void', 
+                   [param('double', 'sh')])
+    return
+
+def register_Ns3UeLtePhy_methods(root_module, cls):
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::UeLtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeLtePhy const &', 'arg0')])
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy() [constructor]
+    cls.add_constructor([])
+    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## ue-phy.h: void ns3::UeLtePhy::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'void', 
+                   [param('std::vector< double >', 'sinr')])
+    ## ue-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::UeLtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::DoSetUplinkSubChannels() [member function]
+    cls.add_method('DoSetUplinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForReception() [member function]
+    cls.add_method('GetSubChannelsForReception', 
+                   'std::vector< int >', 
+                   [])
+    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForTransmission() [member function]
+    cls.add_method('GetSubChannelsForTransmission', 
+                   'std::vector< int >', 
+                   [])
+    ## ue-phy.h: static ns3::TypeId ns3::UeLtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ue-phy.h: void ns3::UeLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## ue-phy.h: bool ns3::UeLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_virtual=True)
+    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForReception(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetSubChannelsForReception', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForTransmission(std::vector<int, std::allocator<int> > mask) [member function]
+    cls.add_method('SetSubChannelsForTransmission', 
+                   'void', 
+                   [param('std::vector< int >', 'mask')])
+    return
+
+def register_Ns3UeLteSpectrumPhy_methods(root_module, cls):
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy(ns3::UeLteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeLteSpectrumPhy const &', 'arg0')])
+    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## ue-lte-spectrum-phy.h: void ns3::UeLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_virtual=True)
+    ## ue-lte-spectrum-phy.h: static ns3::TypeId ns3::UeLteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UeMacEntity_methods(root_module, cls):
+    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity(ns3::UeMacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UeMacEntity const &', 'arg0')])
+    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity() [constructor]
+    cls.add_constructor([])
+    ## ue-mac-entity.h: ns3::Ptr<ns3::CqiIdealControlMessage> ns3::UeMacEntity::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
+    cls.add_method('CreateCqiFeedbacks', 
+                   'ns3::Ptr< ns3::CqiIdealControlMessage >', 
+                   [param('std::vector< double >', 'sinr')])
+    ## ue-mac-entity.h: static ns3::TypeId ns3::UeMacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3CqiIdealControlMessage_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage(ns3::CqiIdealControlMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CqiIdealControlMessage const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: void ns3::CqiIdealControlMessage::AddNewRecord(int subChannel, double cqi) [member function]
+    cls.add_method('AddNewRecord', 
+                   'void', 
+                   [param('int', 'subChannel'), param('double', 'cqi')])
+    ## ideal-control-messages.h: std::list<ns3::CqiIdealControlMessage::CqiFeedback,std::allocator<ns3::CqiIdealControlMessage::CqiFeedback> > * ns3::CqiIdealControlMessage::GetMessage() [member function]
+    cls.add_method('GetMessage', 
+                   'std::list< ns3::CqiIdealControlMessage::CqiFeedback > *', 
+                   [])
+    return
+
+def register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, cls):
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback() [constructor]
+    cls.add_constructor([])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback(ns3::CqiIdealControlMessage::CqiFeedback const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CqiIdealControlMessage::CqiFeedback const &', 'arg0')])
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_cqi [variable]
+    cls.add_instance_attribute('m_cqi', 'double', is_const=False)
+    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_idSubChannel [variable]
+    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
+    return
+
+def register_Ns3EnbLtePhy_methods(root_module, cls):
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::EnbLtePhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbLtePhy const &', 'arg0')])
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy() [constructor]
+    cls.add_constructor([])
+    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
+    ## enb-phy.h: void ns3::EnbLtePhy::CalcChannelQualityForUe(std::vector<double, std::allocator<double> > sinr, ns3::Ptr<ns3::LteSpectrumPhy> ue) [member function]
+    cls.add_method('CalcChannelQualityForUe', 
+                   'void', 
+                   [param('std::vector< double >', 'sinr'), param('ns3::Ptr< ns3::LteSpectrumPhy >', 'ue')])
+    ## enb-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::EnbLtePhy::CreateTxPowerSpectralDensity() [member function]
+    cls.add_method('CreateTxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::DoSetDownlinkSubChannels() [member function]
+    cls.add_method('DoSetDownlinkSubChannels', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::EndFrame() [member function]
+    cls.add_method('EndFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: void ns3::EnbLtePhy::EndSubFrame() [member function]
+    cls.add_method('EndSubFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: static ns3::TypeId ns3::EnbLtePhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
+    cls.add_method('SendIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
+                   is_virtual=True)
+    ## enb-phy.h: bool ns3::EnbLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
+                   is_virtual=True)
+    ## enb-phy.h: void ns3::EnbLtePhy::StartFrame() [member function]
+    cls.add_method('StartFrame', 
+                   'void', 
+                   [])
+    ## enb-phy.h: void ns3::EnbLtePhy::StartSubFrame() [member function]
+    cls.add_method('StartSubFrame', 
+                   'void', 
+                   [])
+    return
+
+def register_Ns3EnbLteSpectrumPhy_methods(root_module, cls):
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy(ns3::EnbLteSpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbLteSpectrumPhy const &', 'arg0')])
+    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## enb-lte-spectrum-phy.h: void ns3::EnbLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
+    cls.add_method('CalcSinrValues', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
+                   is_virtual=True)
+    ## enb-lte-spectrum-phy.h: static ns3::TypeId ns3::EnbLteSpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3EnbMacEntity_methods(root_module, cls):
+    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity(ns3::EnbMacEntity const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::EnbMacEntity const &', 'arg0')])
+    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity() [constructor]
+    cls.add_constructor([])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetDownlinkPacketScheduler() [member function]
+    cls.add_method('GetDownlinkPacketScheduler', 
+                   'ns3::Ptr< ns3::PacketScheduler >', 
+                   [])
+    ## enb-mac-entity.h: static ns3::TypeId ns3::EnbMacEntity::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetUplinkPacketScheduler() [member function]
+    cls.add_method('GetUplinkPacketScheduler', 
+                   'ns3::Ptr< ns3::PacketScheduler >', 
+                   [])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::ReceiveCqiIdealControlMessage(ns3::Ptr<ns3::CqiIdealControlMessage> msg) [member function]
+    cls.add_method('ReceiveCqiIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::CqiIdealControlMessage >', 'msg')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SendPdcchMapIdealControlMessage(ns3::Ptr<ns3::PdcchMapIdealControlMessage> msg) [member function]
+    cls.add_method('SendPdcchMapIdealControlMessage', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PdcchMapIdealControlMessage >', 'msg')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetDownlinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
+    cls.add_method('SetDownlinkPacketScheduler', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
+    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetUplinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
+    cls.add_method('SetUplinkPacketScheduler', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
+    return
+
+def register_Ns3LteNetDevice_methods(root_module, cls):
+    ## lte-net-device.h: static ns3::TypeId ns3::LteNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## lte-net-device.h: ns3::LteNetDevice::LteNetDevice() [constructor]
+    cls.add_constructor([])
+    ## lte-net-device.h: void ns3::LteNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPhyMacTxStartCallback(ns3::PhyMacTxStartCallback c) [member function]
+    cls.add_method('SetPhyMacTxStartCallback', 
+                   'void', 
+                   [param('ns3::PhyMacTxStartCallback', 'c')])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## lte-net-device.h: ns3::Ptr<ns3::LtePhy> ns3::LteNetDevice::GetPhy() const [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::LtePhy >', 
+                   [], 
+                   is_const=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetRrcEntity(ns3::Ptr<ns3::RrcEntity> rrc) [member function]
+    cls.add_method('SetRrcEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::RrcEntity >', 'rrc')])
+    ## lte-net-device.h: ns3::Ptr<ns3::RrcEntity> ns3::LteNetDevice::GetRrcEntity() [member function]
+    cls.add_method('GetRrcEntity', 
+                   'ns3::Ptr< ns3::RrcEntity >', 
+                   [])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## lte-net-device.h: uint32_t ns3::LteNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Ptr<ns3::Channel> ns3::LteNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## lte-net-device.h: uint16_t ns3::LteNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Ptr<ns3::Node> ns3::LteNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv4Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::Receive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')])
+    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest')])
+    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
+    ## lte-net-device.h: void ns3::LteNetDevice::SetPacketToSend(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SetPacketToSend', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')])
+    ## lte-net-device.h: ns3::Ptr<ns3::PacketBurst> ns3::LteNetDevice::GetPacketToSend() [member function]
+    cls.add_method('GetPacketToSend', 
+                   'ns3::Ptr< ns3::PacketBurst >', 
+                   [])
+    ## lte-net-device.h: void ns3::LteNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## lte-net-device.h: bool ns3::LteNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## lte-net-device.h: void ns3::LteNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3UeNetDevice_methods(root_module, cls):
+    ## ue-net-device.h: static ns3::TypeId ns3::UeNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice() [constructor]
+    cls.add_constructor([])
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::EnbNetDevice> targetEnb) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::EnbNetDevice >', 'targetEnb')])
+    ## ue-net-device.h: void ns3::UeNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::SetMacEntity(ns3::Ptr<ns3::UeMacEntity> m) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeMacEntity >', 'm')])
+    ## ue-net-device.h: ns3::Ptr<ns3::UeMacEntity> ns3::UeNetDevice::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::UeMacEntity >', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::InitUeNetDevice() [member function]
+    cls.add_method('InitUeNetDevice', 
+                   'void', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::SetTargetEnb(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
+    cls.add_method('SetTargetEnb', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
+    ## ue-net-device.h: ns3::Ptr<ns3::EnbNetDevice> ns3::UeNetDevice::GetTargetEnb() [member function]
+    cls.add_method('GetTargetEnb', 
+                   'ns3::Ptr< ns3::EnbNetDevice >', 
+                   [])
+    ## ue-net-device.h: void ns3::UeNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## ue-net-device.h: bool ns3::UeNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_virtual=True)
+    ## ue-net-device.h: bool ns3::UeNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   visibility='private', is_virtual=True)
+    ## ue-net-device.h: void ns3::UeNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3EnbNetDevice_methods(root_module, cls):
+    ## enb-net-device.h: static ns3::TypeId ns3::EnbNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice() [constructor]
+    cls.add_constructor([])
+    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
+    ## enb-net-device.h: void ns3::EnbNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::InitEnbNetDevice() [member function]
+    cls.add_method('InitEnbNetDevice', 
+                   'void', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::Start() [member function]
+    cls.add_method('Start', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::SetUeManager(ns3::Ptr<ns3::UeManager> m) [member function]
+    cls.add_method('SetUeManager', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UeManager >', 'm')])
+    ## enb-net-device.h: ns3::Ptr<ns3::UeManager> ns3::EnbNetDevice::GetUeManager() [member function]
+    cls.add_method('GetUeManager', 
+                   'ns3::Ptr< ns3::UeManager >', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::SetMacEntity(ns3::Ptr<ns3::EnbMacEntity> m) [member function]
+    cls.add_method('SetMacEntity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnbMacEntity >', 'm')])
+    ## enb-net-device.h: ns3::Ptr<ns3::EnbMacEntity> ns3::EnbNetDevice::GetMacEntity() [member function]
+    cls.add_method('GetMacEntity', 
+                   'ns3::Ptr< ns3::EnbMacEntity >', 
+                   [])
+    ## enb-net-device.h: void ns3::EnbNetDevice::StartTransmission() [member function]
+    cls.add_method('StartTransmission', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## enb-net-device.h: bool ns3::EnbNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
+    cls.add_method('SendPacket', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
+                   is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::SendIdealPdcchMessage() [member function]
+    cls.add_method('SendIdealPdcchMessage', 
+                   'void', 
+                   [])
+    ## enb-net-device.h: bool ns3::EnbNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('DoSend', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   visibility='private', is_virtual=True)
+    ## enb-net-device.h: void ns3::EnbNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('DoReceive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_node.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_node.py	Tue Feb 08 13:08:45 2011 -0500
@@ -67,14 +67,10 @@
     module.add_class('PbbTlvBlock')
     ## ipv4-header.h: ns3::Ipv4Header [class]
     module.add_class('Ipv4Header', parent=root_module['ns3::Header'])
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag [class]
-    module.add_class('Ipv4PacketInfoTag', parent=root_module['ns3::Tag'])
     ## ipv6-header.h: ns3::Ipv6Header [class]
     module.add_class('Ipv6Header', parent=root_module['ns3::Header'])
     ## ipv6-header.h: ns3::Ipv6Header::NextHeader_e [enumeration]
     module.add_enum('NextHeader_e', ['IPV6_EXT_HOP_BY_HOP', 'IPV6_IPV4', 'IPV6_TCP', 'IPV6_UDP', 'IPV6_IPV6', 'IPV6_EXT_ROUTING', 'IPV6_EXT_FRAGMENTATION', 'IPV6_EXT_CONFIDENTIALITY', 'IPV6_EXT_AUTHENTIFICATION', 'IPV6_ICMPV6', 'IPV6_EXT_END', 'IPV6_EXT_DESTINATION', 'IPV6_SCTP', 'IPV6_EXT_MOBILITY', 'IPV6_UDP_LITE'], outer_class=root_module['ns3::Ipv6Header'])
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag [class]
-    module.add_class('Ipv6PacketInfoTag', parent=root_module['ns3::Tag'])
     ## llc-snap-header.h: ns3::LlcSnapHeader [class]
     module.add_class('LlcSnapHeader', parent=root_module['ns3::Header'])
     ## queue.h: ns3::Queue [class]
@@ -115,8 +111,6 @@
     module.add_class('SocketIpTtlTag', parent=root_module['ns3::Tag'])
     ## socket.h: ns3::SocketSetDontFragmentTag [class]
     module.add_class('SocketSetDontFragmentTag', parent=root_module['ns3::Tag'])
-    ## spectrum-phy.h: ns3::SpectrumPhy [class]
-    module.add_class('SpectrumPhy', parent=root_module['ns3::Object'])
     ## tcp-socket.h: ns3::TcpSocket [class]
     module.add_class('TcpSocket', parent=root_module['ns3::Socket'])
     ## tcp-socket-factory.h: ns3::TcpSocketFactory [class]
@@ -205,8 +199,6 @@
     module.add_class('SimpleChannel', parent=root_module['ns3::Channel'])
     ## simple-net-device.h: ns3::SimpleNetDevice [class]
     module.add_class('SimpleNetDevice', parent=root_module['ns3::NetDevice'])
-    ## spectrum-channel.h: ns3::SpectrumChannel [class]
-    module.add_class('SpectrumChannel', parent=root_module['ns3::Channel'])
     ## address.h: ns3::AddressChecker [class]
     module.add_class('AddressChecker', parent=root_module['ns3::AttributeChecker'])
     ## address.h: ns3::AddressValue [class]
@@ -216,12 +208,12 @@
     module.add_container('ns3::olsr::MprSet', 'ns3::Ipv4Address', container_type='set')
     module.add_container('std::vector< ns3::Ipv4Address >', 'ns3::Ipv4Address', container_type='vector')
     module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type='vector')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxEndErrorCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxEndErrorCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxEndErrorCallback&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::PhyMacRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::PhyMacRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::PhyMacRxEndOkCallback&')
@@ -342,9 +334,7 @@
     register_Ns3PbbAddressTlvBlock_methods(root_module, root_module['ns3::PbbAddressTlvBlock'])
     register_Ns3PbbTlvBlock_methods(root_module, root_module['ns3::PbbTlvBlock'])
     register_Ns3Ipv4Header_methods(root_module, root_module['ns3::Ipv4Header'])
-    register_Ns3Ipv4PacketInfoTag_methods(root_module, root_module['ns3::Ipv4PacketInfoTag'])
     register_Ns3Ipv6Header_methods(root_module, root_module['ns3::Ipv6Header'])
-    register_Ns3Ipv6PacketInfoTag_methods(root_module, root_module['ns3::Ipv6PacketInfoTag'])
     register_Ns3LlcSnapHeader_methods(root_module, root_module['ns3::LlcSnapHeader'])
     register_Ns3Queue_methods(root_module, root_module['ns3::Queue'])
     register_Ns3RadiotapHeader_methods(root_module, root_module['ns3::RadiotapHeader'])
@@ -353,7 +343,6 @@
     register_Ns3SocketFactory_methods(root_module, root_module['ns3::SocketFactory'])
     register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag'])
     register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag'])
-    register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy'])
     register_Ns3TcpSocket_methods(root_module, root_module['ns3::TcpSocket'])
     register_Ns3TcpSocketFactory_methods(root_module, root_module['ns3::TcpSocketFactory'])
     register_Ns3UdpSocket_methods(root_module, root_module['ns3::UdpSocket'])
@@ -396,7 +385,6 @@
     register_Ns3PbbTlv_methods(root_module, root_module['ns3::PbbTlv'])
     register_Ns3SimpleChannel_methods(root_module, root_module['ns3::SimpleChannel'])
     register_Ns3SimpleNetDevice_methods(root_module, root_module['ns3::SimpleNetDevice'])
-    register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel'])
     register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker'])
     register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue'])
     register_Ns3PbbAddressTlv_methods(root_module, root_module['ns3::PbbAddressTlv'])
@@ -1684,79 +1672,6 @@
                    [param('uint8_t', 'ttl')])
     return
 
-def register_Ns3Ipv4PacketInfoTag_methods(root_module, cls):
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag(ns3::Ipv4PacketInfoTag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4PacketInfoTag const &', 'arg0')])
-    ## ipv4-packet-info-tag.h: ns3::Ipv4PacketInfoTag::Ipv4PacketInfoTag() [constructor]
-    cls.add_constructor([])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_virtual=True)
-    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: ns3::TypeId ns3::Ipv4PacketInfoTag::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: ns3::Ipv4Address ns3::Ipv4PacketInfoTag::GetLocalAddress() const [member function]
-    cls.add_method('GetLocalAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetRecvIf() const [member function]
-    cls.add_method('GetRecvIf', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: uint32_t ns3::Ipv4PacketInfoTag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: uint8_t ns3::Ipv4PacketInfoTag::GetTtl() const [member function]
-    cls.add_method('GetTtl', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-packet-info-tag.h: static ns3::TypeId ns3::Ipv4PacketInfoTag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetAddress(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetLocalAddress(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLocalAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
-    cls.add_method('SetRecvIf', 
-                   'void', 
-                   [param('uint32_t', 'ifindex')])
-    ## ipv4-packet-info-tag.h: void ns3::Ipv4PacketInfoTag::SetTtl(uint8_t ttl) [member function]
-    cls.add_method('SetTtl', 
-                   'void', 
-                   [param('uint8_t', 'ttl')])
-    return
-
 def register_Ns3Ipv6Header_methods(root_module, cls):
     ## ipv6-header.h: ns3::Ipv6Header::Ipv6Header(ns3::Ipv6Header const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv6Header const &', 'arg0')])
@@ -1857,79 +1772,6 @@
                    [param('uint8_t', 'traffic')])
     return
 
-def register_Ns3Ipv6PacketInfoTag_methods(root_module, cls):
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag(ns3::Ipv6PacketInfoTag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6PacketInfoTag const &', 'arg0')])
-    ## ipv6-packet-info-tag.h: ns3::Ipv6PacketInfoTag::Ipv6PacketInfoTag() [constructor]
-    cls.add_constructor([])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_virtual=True)
-    ## ipv6-packet-info-tag.h: ns3::Ipv6Address ns3::Ipv6PacketInfoTag::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetHoplimit() const [member function]
-    cls.add_method('GetHoplimit', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: ns3::TypeId ns3::Ipv6PacketInfoTag::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetRecvIf() const [member function]
-    cls.add_method('GetRecvIf', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: uint32_t ns3::Ipv6PacketInfoTag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: uint8_t ns3::Ipv6PacketInfoTag::GetTrafficClass() const [member function]
-    cls.add_method('GetTrafficClass', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-packet-info-tag.h: static ns3::TypeId ns3::Ipv6PacketInfoTag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetAddress(ns3::Ipv6Address addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'addr')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetHoplimit(uint8_t ttl) [member function]
-    cls.add_method('SetHoplimit', 
-                   'void', 
-                   [param('uint8_t', 'ttl')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetRecvIf(uint32_t ifindex) [member function]
-    cls.add_method('SetRecvIf', 
-                   'void', 
-                   [param('uint32_t', 'ifindex')])
-    ## ipv6-packet-info-tag.h: void ns3::Ipv6PacketInfoTag::SetTrafficClass(uint8_t tclass) [member function]
-    cls.add_method('SetTrafficClass', 
-                   'void', 
-                   [param('uint8_t', 'tclass')])
-    return
-
 def register_Ns3LlcSnapHeader_methods(root_module, cls):
     ## llc-snap-header.h: ns3::LlcSnapHeader::LlcSnapHeader(ns3::LlcSnapHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LlcSnapHeader const &', 'arg0')])
@@ -2548,53 +2390,6 @@
                    is_const=True, is_virtual=True)
     return
 
-def register_Ns3SpectrumPhy_methods(root_module, cls):
-    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy(ns3::SpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumPhy const &', 'arg0')])
-    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetMobility() [member function]
-    cls.add_method('GetMobility', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumPhy::GetRxSpectrumModel() const [member function]
-    cls.add_method('GetRxSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## spectrum-phy.h: static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'd')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
-    cls.add_method('SetMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'm')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-phy.h: void ns3::SpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
-    cls.add_method('StartRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
 def register_Ns3TcpSocket_methods(root_module, cls):
     ## tcp-socket.h: ns3::TcpSocket::TcpSocket(ns3::TcpSocket const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TcpSocket const &', 'arg0')])
@@ -5261,38 +5056,6 @@
                    visibility='protected', is_virtual=True)
     return
 
-def register_Ns3SpectrumChannel_methods(root_module, cls):
-    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel() [constructor]
-    cls.add_constructor([])
-    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')])
-    ## spectrum-channel.h: void ns3::SpectrumChannel::AddRx(ns3::Ptr<ns3::SpectrumPhy> phy) [member function]
-    cls.add_method('AddRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr<ns3::SpectrumPropagationLossModel> loss) [member function]
-    cls.add_method('AddSpectrumPropagationLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr<ns3::PropagationDelayModel> delay) [member function]
-    cls.add_method('SetPropagationDelayModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## spectrum-channel.h: void ns3::SpectrumChannel::StartTx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue> txPsd, ns3::SpectrumType st, ns3::Time duration, ns3::Ptr<ns3::SpectrumPhy> sender) [member function]
-    cls.add_method('StartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration'), param('ns3::Ptr< ns3::SpectrumPhy >', 'sender')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
 def register_Ns3AddressChecker_methods(root_module, cls):
     ## address.h: ns3::AddressChecker::AddressChecker() [constructor]
     cls.add_constructor([])
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_olsr.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_olsr.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,18 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## olsr-helper.h: ns3::OlsrHelper [class]
+    module.add_class('OlsrHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## olsr-state.h: ns3::OlsrState [class]
+    module.add_class('OlsrState')
+    module.add_container('std::vector< ns3::olsr::MprSelectorTuple >', 'ns3::olsr::MprSelectorTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::NeighborTuple >', 'ns3::olsr::NeighborTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::TwoHopNeighborTuple >', 'ns3::olsr::TwoHopNeighborTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::LinkTuple >', 'ns3::olsr::LinkTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::TopologyTuple >', 'ns3::olsr::TopologyTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::IfaceAssocTuple >', 'ns3::olsr::IfaceAssocTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::AssociationTuple >', 'ns3::olsr::AssociationTuple', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::Association >', 'ns3::olsr::Association', container_type='vector')
     
     ## Register a nested module for the namespace Config
     
@@ -93,8 +105,954 @@
 def register_types_ns3_olsr(module):
     root_module = module.get_root()
     
+    ## olsr-repositories.h: ns3::olsr::Association [struct]
+    module.add_class('Association')
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple [struct]
+    module.add_class('AssociationTuple')
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple [struct]
+    module.add_class('DuplicateTuple')
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple [struct]
+    module.add_class('IfaceAssocTuple')
+    ## olsr-repositories.h: ns3::olsr::LinkTuple [struct]
+    module.add_class('LinkTuple')
+    ## olsr-header.h: ns3::olsr::MessageHeader [class]
+    module.add_class('MessageHeader', parent=root_module['ns3::Header'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType [enumeration]
+    module.add_enum('MessageType', ['HELLO_MESSAGE', 'TC_MESSAGE', 'MID_MESSAGE', 'HNA_MESSAGE'], outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello [struct]
+    module.add_class('Hello', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage [struct]
+    module.add_class('LinkMessage', outer_class=root_module['ns3::olsr::MessageHeader::Hello'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna [struct]
+    module.add_class('Hna', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association [struct]
+    module.add_class('Association', outer_class=root_module['ns3::olsr::MessageHeader::Hna'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid [struct]
+    module.add_class('Mid', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc [struct]
+    module.add_class('Tc', outer_class=root_module['ns3::olsr::MessageHeader'])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple [struct]
+    module.add_class('MprSelectorTuple')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple [struct]
+    module.add_class('NeighborTuple')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::Status [enumeration]
+    module.add_enum('Status', ['STATUS_NOT_SYM', 'STATUS_SYM'], outer_class=root_module['ns3::olsr::NeighborTuple'])
+    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase [class]
+    module.add_class('OlsrMprTestCase', parent=root_module['ns3::TestCase'])
+    ## olsr-header.h: ns3::olsr::PacketHeader [class]
+    module.add_class('PacketHeader', parent=root_module['ns3::Header'])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol [class]
+    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry [struct]
+    module.add_class('RoutingTableEntry')
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple [struct]
+    module.add_class('TopologyTuple')
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple [struct]
+    module.add_class('TwoHopNeighborTuple')
+    module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
+    module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
+    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
+    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
 
 def register_methods(root_module):
+    register_Ns3OlsrHelper_methods(root_module, root_module['ns3::OlsrHelper'])
+    register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
+    register_Ns3OlsrAssociation_methods(root_module, root_module['ns3::olsr::Association'])
+    register_Ns3OlsrAssociationTuple_methods(root_module, root_module['ns3::olsr::AssociationTuple'])
+    register_Ns3OlsrDuplicateTuple_methods(root_module, root_module['ns3::olsr::DuplicateTuple'])
+    register_Ns3OlsrIfaceAssocTuple_methods(root_module, root_module['ns3::olsr::IfaceAssocTuple'])
+    register_Ns3OlsrLinkTuple_methods(root_module, root_module['ns3::olsr::LinkTuple'])
+    register_Ns3OlsrMessageHeader_methods(root_module, root_module['ns3::olsr::MessageHeader'])
+    register_Ns3OlsrMessageHeaderHello_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello'])
+    register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello::LinkMessage'])
+    register_Ns3OlsrMessageHeaderHna_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna'])
+    register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna::Association'])
+    register_Ns3OlsrMessageHeaderMid_methods(root_module, root_module['ns3::olsr::MessageHeader::Mid'])
+    register_Ns3OlsrMessageHeaderTc_methods(root_module, root_module['ns3::olsr::MessageHeader::Tc'])
+    register_Ns3OlsrMprSelectorTuple_methods(root_module, root_module['ns3::olsr::MprSelectorTuple'])
+    register_Ns3OlsrNeighborTuple_methods(root_module, root_module['ns3::olsr::NeighborTuple'])
+    register_Ns3OlsrOlsrMprTestCase_methods(root_module, root_module['ns3::olsr::OlsrMprTestCase'])
+    register_Ns3OlsrPacketHeader_methods(root_module, root_module['ns3::olsr::PacketHeader'])
+    register_Ns3OlsrRoutingProtocol_methods(root_module, root_module['ns3::olsr::RoutingProtocol'])
+    register_Ns3OlsrRoutingTableEntry_methods(root_module, root_module['ns3::olsr::RoutingTableEntry'])
+    register_Ns3OlsrTopologyTuple_methods(root_module, root_module['ns3::olsr::TopologyTuple'])
+    register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, root_module['ns3::olsr::TwoHopNeighborTuple'])
+    return
+
+def register_Ns3OlsrHelper_methods(root_module, cls):
+    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper() [constructor]
+    cls.add_constructor([])
+    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper(ns3::OlsrHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OlsrHelper const &', 'arg0')])
+    ## olsr-helper.h: ns3::OlsrHelper * ns3::OlsrHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::OlsrHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-helper.h: void ns3::OlsrHelper::ExcludeInterface(ns3::Ptr<ns3::Node> node, uint32_t interface) [member function]
+    cls.add_method('ExcludeInterface', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'interface')])
+    ## olsr-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::OlsrHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-helper.h: void ns3::OlsrHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
+    return
+
+def register_Ns3OlsrState_methods(root_module, cls):
+    ## olsr-state.h: ns3::OlsrState::OlsrState(ns3::OlsrState const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OlsrState const &', 'arg0')])
+    ## olsr-state.h: ns3::OlsrState::OlsrState() [constructor]
+    cls.add_constructor([])
+    ## olsr-state.h: void ns3::OlsrState::EraseAssociation(ns3::olsr::Association const & tuple) [member function]
+    cls.add_method('EraseAssociation', 
+                   'void', 
+                   [param('ns3::olsr::Association const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
+    cls.add_method('EraseAssociationTuple', 
+                   'void', 
+                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
+    cls.add_method('EraseDuplicateTuple', 
+                   'void', 
+                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
+    cls.add_method('EraseIfaceAssocTuple', 
+                   'void', 
+                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
+    cls.add_method('EraseLinkTuple', 
+                   'void', 
+                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
+    cls.add_method('EraseMprSelectorTuple', 
+                   'void', 
+                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuples(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('EraseMprSelectorTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::olsr::NeighborTuple const & neighborTuple) [member function]
+    cls.add_method('EraseNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::NeighborTuple const &', 'neighborTuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('EraseNeighborTuple', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: void ns3::OlsrState::EraseOlderTopologyTuples(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
+    cls.add_method('EraseOlderTopologyTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
+    cls.add_method('EraseTopologyTuple', 
+                   'void', 
+                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
+    cls.add_method('EraseTwoHopNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor) [member function]
+    cls.add_method('EraseTwoHopNeighborTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'neighbor')])
+    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
+    cls.add_method('EraseTwoHopNeighborTuples', 
+                   'void', 
+                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
+    ## olsr-state.h: ns3::olsr::AssociationTuple * ns3::OlsrState::FindAssociationTuple(ns3::Ipv4Address const & gatewayAddr, ns3::Ipv4Address const & networkAddr, ns3::Ipv4Mask const & netmask) [member function]
+    cls.add_method('FindAssociationTuple', 
+                   'ns3::olsr::AssociationTuple *', 
+                   [param('ns3::Ipv4Address const &', 'gatewayAddr'), param('ns3::Ipv4Address const &', 'networkAddr'), param('ns3::Ipv4Mask const &', 'netmask')])
+    ## olsr-state.h: ns3::olsr::DuplicateTuple * ns3::OlsrState::FindDuplicateTuple(ns3::Ipv4Address const & address, uint16_t sequenceNumber) [member function]
+    cls.add_method('FindDuplicateTuple', 
+                   'ns3::olsr::DuplicateTuple *', 
+                   [param('ns3::Ipv4Address const &', 'address'), param('uint16_t', 'sequenceNumber')])
+    ## olsr-state.h: ns3::olsr::IfaceAssocTuple * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
+    cls.add_method('FindIfaceAssocTuple', 
+                   'ns3::olsr::IfaceAssocTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
+    ## olsr-state.h: ns3::olsr::IfaceAssocTuple const * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) const [member function]
+    cls.add_method('FindIfaceAssocTuple', 
+                   'ns3::olsr::IfaceAssocTuple const *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindLinkTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
+    cls.add_method('FindLinkTuple', 
+                   'ns3::olsr::LinkTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
+    ## olsr-state.h: bool ns3::OlsrState::FindMprAddress(ns3::Ipv4Address const & address) [member function]
+    cls.add_method('FindMprAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address const &', 'address')])
+    ## olsr-state.h: ns3::olsr::MprSelectorTuple * ns3::OlsrState::FindMprSelectorTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('FindMprSelectorTuple', 
+                   'ns3::olsr::MprSelectorTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: std::vector<ns3::Ipv4Address, std::allocator<ns3::Ipv4Address> > ns3::OlsrState::FindNeighborInterfaces(ns3::Ipv4Address const & neighborMainAddr) const [member function]
+    cls.add_method('FindNeighborInterfaces', 
+                   'std::vector< ns3::Ipv4Address >', 
+                   [param('ns3::Ipv4Address const &', 'neighborMainAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
+    cls.add_method('FindNeighborTuple', 
+                   'ns3::olsr::NeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')])
+    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr, uint8_t willingness) [member function]
+    cls.add_method('FindNeighborTuple', 
+                   'ns3::olsr::NeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr'), param('uint8_t', 'willingness')])
+    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindNewerTopologyTuple(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
+    cls.add_method('FindNewerTopologyTuple', 
+                   'ns3::olsr::TopologyTuple *', 
+                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
+    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindSymLinkTuple(ns3::Ipv4Address const & ifaceAddr, ns3::Time time) [member function]
+    cls.add_method('FindSymLinkTuple', 
+                   'ns3::olsr::LinkTuple *', 
+                   [param('ns3::Ipv4Address const &', 'ifaceAddr'), param('ns3::Time', 'time')])
+    ## olsr-state.h: ns3::olsr::NeighborTuple const * ns3::OlsrState::FindSymNeighborTuple(ns3::Ipv4Address const & mainAddr) const [member function]
+    cls.add_method('FindSymNeighborTuple', 
+                   'ns3::olsr::NeighborTuple const *', 
+                   [param('ns3::Ipv4Address const &', 'mainAddr')], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindTopologyTuple(ns3::Ipv4Address const & destAddr, ns3::Ipv4Address const & lastAddr) [member function]
+    cls.add_method('FindTopologyTuple', 
+                   'ns3::olsr::TopologyTuple *', 
+                   [param('ns3::Ipv4Address const &', 'destAddr'), param('ns3::Ipv4Address const &', 'lastAddr')])
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborTuple * ns3::OlsrState::FindTwoHopNeighborTuple(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
+    cls.add_method('FindTwoHopNeighborTuple', 
+                   'ns3::olsr::TwoHopNeighborTuple *', 
+                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
+    ## olsr-state.h: ns3::olsr::AssociationSet const & ns3::OlsrState::GetAssociationSet() const [member function]
+    cls.add_method('GetAssociationSet', 
+                   'ns3::olsr::AssociationSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::Associations const & ns3::OlsrState::GetAssociations() const [member function]
+    cls.add_method('GetAssociations', 
+                   'ns3::olsr::Associations const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::IfaceAssocSet const & ns3::OlsrState::GetIfaceAssocSet() const [member function]
+    cls.add_method('GetIfaceAssocSet', 
+                   'ns3::olsr::IfaceAssocSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::IfaceAssocSet & ns3::OlsrState::GetIfaceAssocSetMutable() [member function]
+    cls.add_method('GetIfaceAssocSetMutable', 
+                   'ns3::olsr::IfaceAssocSet &', 
+                   [])
+    ## olsr-state.h: ns3::olsr::LinkSet const & ns3::OlsrState::GetLinks() const [member function]
+    cls.add_method('GetLinks', 
+                   'ns3::olsr::LinkSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::MprSelectorSet const & ns3::OlsrState::GetMprSelectors() const [member function]
+    cls.add_method('GetMprSelectors', 
+                   'ns3::olsr::MprSelectorSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::MprSet ns3::OlsrState::GetMprSet() const [member function]
+    cls.add_method('GetMprSet', 
+                   'ns3::olsr::MprSet', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborSet const & ns3::OlsrState::GetNeighbors() const [member function]
+    cls.add_method('GetNeighbors', 
+                   'ns3::olsr::NeighborSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::NeighborSet & ns3::OlsrState::GetNeighbors() [member function]
+    cls.add_method('GetNeighbors', 
+                   'ns3::olsr::NeighborSet &', 
+                   [])
+    ## olsr-state.h: ns3::olsr::TopologySet const & ns3::OlsrState::GetTopologySet() const [member function]
+    cls.add_method('GetTopologySet', 
+                   'ns3::olsr::TopologySet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet const & ns3::OlsrState::GetTwoHopNeighbors() const [member function]
+    cls.add_method('GetTwoHopNeighbors', 
+                   'ns3::olsr::TwoHopNeighborSet const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet & ns3::OlsrState::GetTwoHopNeighbors() [member function]
+    cls.add_method('GetTwoHopNeighbors', 
+                   'ns3::olsr::TwoHopNeighborSet &', 
+                   [])
+    ## olsr-state.h: void ns3::OlsrState::InsertAssociation(ns3::olsr::Association const & tuple) [member function]
+    cls.add_method('InsertAssociation', 
+                   'void', 
+                   [param('ns3::olsr::Association const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
+    cls.add_method('InsertAssociationTuple', 
+                   'void', 
+                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
+    cls.add_method('InsertDuplicateTuple', 
+                   'void', 
+                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
+    cls.add_method('InsertIfaceAssocTuple', 
+                   'void', 
+                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
+    ## olsr-state.h: ns3::olsr::LinkTuple & ns3::OlsrState::InsertLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
+    cls.add_method('InsertLinkTuple', 
+                   'ns3::olsr::LinkTuple &', 
+                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
+    cls.add_method('InsertMprSelectorTuple', 
+                   'void', 
+                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertNeighborTuple(ns3::olsr::NeighborTuple const & tuple) [member function]
+    cls.add_method('InsertNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::NeighborTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
+    cls.add_method('InsertTopologyTuple', 
+                   'void', 
+                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
+    ## olsr-state.h: void ns3::OlsrState::InsertTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
+    cls.add_method('InsertTwoHopNeighborTuple', 
+                   'void', 
+                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
+    ## olsr-state.h: std::string ns3::OlsrState::PrintMprSelectorSet() const [member function]
+    cls.add_method('PrintMprSelectorSet', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## olsr-state.h: void ns3::OlsrState::SetMprSet(ns3::olsr::MprSet mprSet) [member function]
+    cls.add_method('SetMprSet', 
+                   'void', 
+                   [param('ns3::olsr::MprSet', 'mprSet')])
+    return
+
+def register_Ns3OlsrAssociation_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::Association::Association() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::Association::Association(ns3::olsr::Association const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::Association const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::Association::netmask [variable]
+    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::Association::networkAddr [variable]
+    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrAssociationTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple(ns3::olsr::AssociationTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::AssociationTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::gatewayAddr [variable]
+    cls.add_instance_attribute('gatewayAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::netmask [variable]
+    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::AssociationTuple::networkAddr [variable]
+    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrDuplicateTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple(ns3::olsr::DuplicateTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::DuplicateTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::address [variable]
+    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::ifaceList [variable]
+    cls.add_instance_attribute('ifaceList', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::retransmitted [variable]
+    cls.add_instance_attribute('retransmitted', 'bool', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::sequenceNumber [variable]
+    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3OlsrIfaceAssocTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::IfaceAssocTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::ifaceAddr [variable]
+    cls.add_instance_attribute('ifaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::mainAddr [variable]
+    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3OlsrLinkTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple(ns3::olsr::LinkTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::LinkTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::asymTime [variable]
+    cls.add_instance_attribute('asymTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::localIfaceAddr [variable]
+    cls.add_instance_attribute('localIfaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::neighborIfaceAddr [variable]
+    cls.add_instance_attribute('neighborIfaceAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::symTime [variable]
+    cls.add_instance_attribute('symTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::LinkTuple::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader(ns3::olsr::MessageHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello & ns3::olsr::MessageHeader::GetHello() [member function]
+    cls.add_method('GetHello', 
+                   'ns3::olsr::MessageHeader::Hello &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello const & ns3::olsr::MessageHeader::GetHello() const [member function]
+    cls.add_method('GetHello', 
+                   'ns3::olsr::MessageHeader::Hello const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna & ns3::olsr::MessageHeader::GetHna() [member function]
+    cls.add_method('GetHna', 
+                   'ns3::olsr::MessageHeader::Hna &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna const & ns3::olsr::MessageHeader::GetHna() const [member function]
+    cls.add_method('GetHna', 
+                   'ns3::olsr::MessageHeader::Hna const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetHopCount() const [member function]
+    cls.add_method('GetHopCount', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::TypeId ns3::olsr::MessageHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: uint16_t ns3::olsr::MessageHeader::GetMessageSequenceNumber() const [member function]
+    cls.add_method('GetMessageSequenceNumber', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType ns3::olsr::MessageHeader::GetMessageType() const [member function]
+    cls.add_method('GetMessageType', 
+                   'ns3::olsr::MessageHeader::MessageType', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid & ns3::olsr::MessageHeader::GetMid() [member function]
+    cls.add_method('GetMid', 
+                   'ns3::olsr::MessageHeader::Mid &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid const & ns3::olsr::MessageHeader::GetMid() const [member function]
+    cls.add_method('GetMid', 
+                   'ns3::olsr::MessageHeader::Mid const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: ns3::Ipv4Address ns3::olsr::MessageHeader::GetOriginatorAddress() const [member function]
+    cls.add_method('GetOriginatorAddress', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc & ns3::olsr::MessageHeader::GetTc() [member function]
+    cls.add_method('GetTc', 
+                   'ns3::olsr::MessageHeader::Tc &', 
+                   [])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc const & ns3::olsr::MessageHeader::GetTc() const [member function]
+    cls.add_method('GetTc', 
+                   'ns3::olsr::MessageHeader::Tc const &', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetTimeToLive() const [member function]
+    cls.add_method('GetTimeToLive', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: static ns3::TypeId ns3::olsr::MessageHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::GetVTime() const [member function]
+    cls.add_method('GetVTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetHopCount(uint8_t hopCount) [member function]
+    cls.add_method('SetHopCount', 
+                   'void', 
+                   [param('uint8_t', 'hopCount')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageSequenceNumber(uint16_t messageSequenceNumber) [member function]
+    cls.add_method('SetMessageSequenceNumber', 
+                   'void', 
+                   [param('uint16_t', 'messageSequenceNumber')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageType(ns3::olsr::MessageHeader::MessageType messageType) [member function]
+    cls.add_method('SetMessageType', 
+                   'void', 
+                   [param('ns3::olsr::MessageHeader::MessageType', 'messageType')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetOriginatorAddress(ns3::Ipv4Address originatorAddress) [member function]
+    cls.add_method('SetOriginatorAddress', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'originatorAddress')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetTimeToLive(uint8_t timeToLive) [member function]
+    cls.add_method('SetTimeToLive', 
+                   'void', 
+                   [param('uint8_t', 'timeToLive')])
+    ## olsr-header.h: void ns3::olsr::MessageHeader::SetVTime(ns3::Time time) [member function]
+    cls.add_method('SetVTime', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    return
+
+def register_Ns3OlsrMessageHeaderHello_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello(ns3::olsr::MessageHeader::Hello const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::Hello::GetHTime() const [member function]
+    cls.add_method('GetHTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::SetHTime(ns3::Time time) [member function]
+    cls.add_method('SetHTime', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::hTime [variable]
+    cls.add_instance_attribute('hTime', 'uint8_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::linkMessages [variable]
+    cls.add_instance_attribute('linkMessages', 'std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::willingness [variable]
+    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage(ns3::olsr::MessageHeader::Hello::LinkMessage const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello::LinkMessage const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::linkCode [variable]
+    cls.add_instance_attribute('linkCode', 'uint8_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses [variable]
+    cls.add_instance_attribute('neighborInterfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHna_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna(ns3::olsr::MessageHeader::Hna const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::associations [variable]
+    cls.add_instance_attribute('associations', 'std::vector< ns3::olsr::MessageHeader::Hna::Association >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association(ns3::olsr::MessageHeader::Hna::Association const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna::Association const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::address [variable]
+    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::mask [variable]
+    cls.add_instance_attribute('mask', 'ns3::Ipv4Mask', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderMid_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid(ns3::olsr::MessageHeader::Mid const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Mid const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::interfaceAddresses [variable]
+    cls.add_instance_attribute('interfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMessageHeaderTc_methods(root_module, cls):
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc(ns3::olsr::MessageHeader::Tc const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MessageHeader::Tc const &', 'arg0')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
+    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True)
+    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::ansn [variable]
+    cls.add_instance_attribute('ansn', 'uint16_t', is_const=False)
+    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::neighborAddresses [variable]
+    cls.add_instance_attribute('neighborAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
+    return
+
+def register_Ns3OlsrMprSelectorTuple_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple(ns3::olsr::MprSelectorTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::MprSelectorTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::mainAddr [variable]
+    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrNeighborTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple(ns3::olsr::NeighborTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::NeighborTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::neighborMainAddr [variable]
+    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::status [variable]
+    cls.add_instance_attribute('status', 'ns3::olsr::NeighborTuple::Status', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::NeighborTuple::willingness [variable]
+    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
+    return
+
+def register_Ns3OlsrOlsrMprTestCase_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase::OlsrMprTestCase() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: void ns3::olsr::OlsrMprTestCase::DoRun() [member function]
+    cls.add_method('DoRun', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    return
+
+def register_Ns3OlsrPacketHeader_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader(ns3::olsr::PacketHeader const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::PacketHeader const &', 'arg0')])
+    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader() [constructor]
+    cls.add_constructor([])
+    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## olsr-header.h: ns3::TypeId ns3::olsr::PacketHeader::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketLength() const [member function]
+    cls.add_method('GetPacketLength', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketSequenceNumber() const [member function]
+    cls.add_method('GetPacketSequenceNumber', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: static ns3::TypeId ns3::olsr::PacketHeader::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketLength(uint16_t length) [member function]
+    cls.add_method('SetPacketLength', 
+                   'void', 
+                   [param('uint16_t', 'length')])
+    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketSequenceNumber(uint16_t seqnum) [member function]
+    cls.add_method('SetPacketSequenceNumber', 
+                   'void', 
+                   [param('uint16_t', 'seqnum')])
+    return
+
+def register_Ns3OlsrRoutingProtocol_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol(ns3::olsr::RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::RoutingProtocol const &', 'arg0')])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::AddHostNetworkAssociation(ns3::Ipv4Address networkAddr, ns3::Ipv4Mask netmask) [member function]
+    cls.add_method('AddHostNetworkAssociation', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'networkAddr'), param('ns3::Ipv4Mask', 'netmask')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::Dump() [member function]
+    cls.add_method('Dump', 
+                   'void', 
+                   [])
+    ## olsr-routing-protocol.h: std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > ns3::olsr::RoutingProtocol::GetInterfaceExclusions() const [member function]
+    cls.add_method('GetInterfaceExclusions', 
+                   'std::set< unsigned int >', 
+                   [], 
+                   is_const=True)
+    ## olsr-routing-protocol.h: std::vector<ns3::olsr::RoutingTableEntry,std::allocator<ns3::olsr::RoutingTableEntry> > ns3::olsr::RoutingProtocol::GetRoutingTableEntries() const [member function]
+    cls.add_method('GetRoutingTableEntries', 
+                   'std::vector< ns3::olsr::RoutingTableEntry >', 
+                   [], 
+                   is_const=True)
+    ## olsr-routing-protocol.h: static ns3::TypeId ns3::olsr::RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetInterfaceExclusions(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > exceptions) [member function]
+    cls.add_method('SetInterfaceExclusions', 
+                   'void', 
+                   [param('std::set< unsigned int >', 'exceptions')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetMainInterface(uint32_t interface) [member function]
+    cls.add_method('SetMainInterface', 
+                   'void', 
+                   [param('uint32_t', 'interface')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetRoutingTableAssociation(ns3::Ptr<ns3::Ipv4StaticRouting> routingTable) [member function]
+    cls.add_method('SetRoutingTableAssociation', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4StaticRouting >', 'routingTable')])
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoStart() [member function]
+    cls.add_method('DoStart', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::olsr::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   visibility='private', is_virtual=True)
+    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3OlsrRoutingTableEntry_methods(root_module, cls):
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry(ns3::olsr::RoutingTableEntry const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::RoutingTableEntry const &', 'arg0')])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::destAddr [variable]
+    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::distance [variable]
+    cls.add_instance_attribute('distance', 'uint32_t', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::interface [variable]
+    cls.add_instance_attribute('interface', 'uint32_t', is_const=False)
+    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::nextAddr [variable]
+    cls.add_instance_attribute('nextAddr', 'ns3::Ipv4Address', is_const=False)
+    return
+
+def register_Ns3OlsrTopologyTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple(ns3::olsr::TopologyTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::TopologyTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::destAddr [variable]
+    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::lastAddr [variable]
+    cls.add_instance_attribute('lastAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TopologyTuple::sequenceNumber [variable]
+    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
+    return
+
+def register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple() [constructor]
+    cls.add_constructor([])
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::olsr::TwoHopNeighborTuple const &', 'arg0')])
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::expirationTime [variable]
+    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::neighborMainAddr [variable]
+    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
+    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::twoHopNeighborAddr [variable]
+    cls.add_instance_attribute('twoHopNeighborAddr', 'ns3::Ipv4Address', is_const=False)
     return
 
 def register_functions(root_module):
@@ -135,5 +1093,13 @@
     return
 
 def register_functions_ns3_olsr(module, root_module):
+    ## olsr-header.h: extern double ns3::olsr::EmfToSeconds(uint8_t emf) [free function]
+    module.add_function('EmfToSeconds', 
+                        'double', 
+                        [param('uint8_t', 'emf')])
+    ## olsr-header.h: extern uint8_t ns3::olsr::SecondsToEmf(double seconds) [free function]
+    module.add_function('SecondsToEmf', 
+                        'uint8_t', 
+                        [param('double', 'seconds')])
     return
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_propagation.py	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,606 @@
+from pybindgen import Module, FileCodeSink, param, retval, cppclass, typehandlers
+
+def register_types(module):
+    root_module = module.get_root()
+    
+    ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
+    module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
+    ## propagation-loss-model.h: ns3::PropagationLossModel [class]
+    module.add_class('PropagationLossModel', parent=root_module['ns3::Object'])
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
+    module.add_class('RandomPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
+    ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
+    module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::RangePropagationLossModel [class]
+    module.add_class('RangePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel [class]
+    module.add_class('ThreeLogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel [class]
+    module.add_class('TwoRayGroundPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
+    module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel [class]
+    module.add_class('Cost231PropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment [enumeration]
+    module.add_enum('Environment', ['SubUrban', 'MediumCity', 'Metropolitan'], outer_class=root_module['ns3::Cost231PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::FixedRssLossModel [class]
+    module.add_class('FixedRssLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
+    module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
+    module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel [class]
+    module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel [class]
+    module.add_class('MatrixPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel [class]
+    module.add_class('NakagamiPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
+    
+    ## Register a nested module for the namespace Config
+    
+    nested_module = module.add_cpp_namespace('Config')
+    register_types_ns3_Config(nested_module)
+    
+    
+    ## Register a nested module for the namespace FatalImpl
+    
+    nested_module = module.add_cpp_namespace('FatalImpl')
+    register_types_ns3_FatalImpl(nested_module)
+    
+    
+    ## Register a nested module for the namespace addressUtils
+    
+    nested_module = module.add_cpp_namespace('addressUtils')
+    register_types_ns3_addressUtils(nested_module)
+    
+    
+    ## Register a nested module for the namespace aodv
+    
+    nested_module = module.add_cpp_namespace('aodv')
+    register_types_ns3_aodv(nested_module)
+    
+    
+    ## Register a nested module for the namespace dot11s
+    
+    nested_module = module.add_cpp_namespace('dot11s')
+    register_types_ns3_dot11s(nested_module)
+    
+    
+    ## Register a nested module for the namespace dsdv
+    
+    nested_module = module.add_cpp_namespace('dsdv')
+    register_types_ns3_dsdv(nested_module)
+    
+    
+    ## Register a nested module for the namespace flame
+    
+    nested_module = module.add_cpp_namespace('flame')
+    register_types_ns3_flame(nested_module)
+    
+    
+    ## Register a nested module for the namespace internal
+    
+    nested_module = module.add_cpp_namespace('internal')
+    register_types_ns3_internal(nested_module)
+    
+    
+    ## Register a nested module for the namespace olsr
+    
+    nested_module = module.add_cpp_namespace('olsr')
+    register_types_ns3_olsr(nested_module)
+    
+
+def register_types_ns3_Config(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_FatalImpl(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_addressUtils(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_aodv(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_dot11s(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_dsdv(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_flame(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_internal(module):
+    root_module = module.get_root()
+    
+
+def register_types_ns3_olsr(module):
+    root_module = module.get_root()
+    
+
+def register_methods(root_module):
+    register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel'])
+    register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel'])
+    register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel'])
+    register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel'])
+    register_Ns3RangePropagationLossModel_methods(root_module, root_module['ns3::RangePropagationLossModel'])
+    register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel'])
+    register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel'])
+    register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel'])
+    register_Ns3Cost231PropagationLossModel_methods(root_module, root_module['ns3::Cost231PropagationLossModel'])
+    register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
+    register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
+    register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
+    register_Ns3LogDistancePropagationLossModel_methods(root_module, root_module['ns3::LogDistancePropagationLossModel'])
+    register_Ns3MatrixPropagationLossModel_methods(root_module, root_module['ns3::MatrixPropagationLossModel'])
+    register_Ns3NakagamiPropagationLossModel_methods(root_module, root_module['ns3::NakagamiPropagationLossModel'])
+    return
+
+def register_Ns3PropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::PropagationDelayModel::PropagationDelayModel(ns3::PropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::Time ns3::PropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::PropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3PropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::PropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::PropagationLossModel::PropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::PropagationLossModel::SetNext(ns3::Ptr<ns3::PropagationLossModel> next) [member function]
+    cls.add_method('SetNext', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PropagationLossModel >', 'next')])
+    ## propagation-loss-model.h: double ns3::PropagationLossModel::CalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('CalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RandomPropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel(ns3::RandomPropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::RandomPropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::RandomPropagationDelayModel::RandomPropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::Time ns3::RandomPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::RandomPropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3RandomPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::RandomPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::RandomPropagationLossModel::RandomPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::RandomPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3RangePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::RangePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::RangePropagationLossModel::RangePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::RangePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::ThreeLogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::TwoRayGroundPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
+    cls.add_method('SetSystemLoss', 
+                   'void', 
+                   [param('double', 'systemLoss')])
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::GetSystemLoss() const [member function]
+    cls.add_method('GetSystemLoss', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: void ns3::TwoRayGroundPropagationLossModel::SetHeightAboveZ(double heightAboveZ) [member function]
+    cls.add_method('SetHeightAboveZ', 
+                   'void', 
+                   [param('double', 'heightAboveZ')])
+    ## propagation-loss-model.h: double ns3::TwoRayGroundPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
+    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
+    cls.add_method('GetSpeed', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
+    cls.add_method('SetSpeed', 
+                   'void', 
+                   [param('double', 'speed')])
+    return
+
+def register_Ns3Cost231PropagationLossModel_methods(root_module, cls):
+    ## cost231-propagation-loss-model.h: static ns3::TypeId ns3::Cost231PropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Cost231PropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('GetLoss', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetBSAntennaHeight(double height) [member function]
+    cls.add_method('SetBSAntennaHeight', 
+                   'void', 
+                   [param('double', 'height')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetSSAntennaHeight(double height) [member function]
+    cls.add_method('SetSSAntennaHeight', 
+                   'void', 
+                   [param('double', 'height')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetEnvironment(ns3::Cost231PropagationLossModel::Environment env) [member function]
+    cls.add_method('SetEnvironment', 
+                   'void', 
+                   [param('ns3::Cost231PropagationLossModel::Environment', 'env')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetBSAntennaHeight() const [member function]
+    cls.add_method('GetBSAntennaHeight', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetSSAntennaHeight() const [member function]
+    cls.add_method('GetSSAntennaHeight', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: ns3::Cost231PropagationLossModel::Environment ns3::Cost231PropagationLossModel::GetEnvironment() const [member function]
+    cls.add_method('GetEnvironment', 
+                   'ns3::Cost231PropagationLossModel::Environment', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::GetShadowing() [member function]
+    cls.add_method('GetShadowing', 
+                   'double', 
+                   [])
+    ## cost231-propagation-loss-model.h: void ns3::Cost231PropagationLossModel::SetShadowing(double shadowing) [member function]
+    cls.add_method('SetShadowing', 
+                   'void', 
+                   [param('double', 'shadowing')])
+    ## cost231-propagation-loss-model.h: double ns3::Cost231PropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3FixedRssLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::FixedRssLossModel::FixedRssLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::FixedRssLossModel::SetRss(double rss) [member function]
+    cls.add_method('SetRss', 
+                   'void', 
+                   [param('double', 'rss')])
+    ## propagation-loss-model.h: double ns3::FixedRssLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::FriisPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::FriisPropagationLossModel::FriisPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double frequency, double speed) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'frequency'), param('double', 'speed')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetLambda(double lambda) [member function]
+    cls.add_method('SetLambda', 
+                   'void', 
+                   [param('double', 'lambda')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetSystemLoss(double systemLoss) [member function]
+    cls.add_method('SetSystemLoss', 
+                   'void', 
+                   [param('double', 'systemLoss')])
+    ## propagation-loss-model.h: void ns3::FriisPropagationLossModel::SetMinDistance(double minDistance) [member function]
+    cls.add_method('SetMinDistance', 
+                   'void', 
+                   [param('double', 'minDistance')])
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetMinDistance() const [member function]
+    cls.add_method('GetMinDistance', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetLambda() const [member function]
+    cls.add_method('GetLambda', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::GetSystemLoss() const [member function]
+    cls.add_method('GetSystemLoss', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: double ns3::FriisPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3JakesPropagationLossModel_methods(root_module, cls):
+    ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel::JakesPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNOscillators() const [member function]
+    cls.add_method('GetNOscillators', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## jakes-propagation-loss-model.h: uint8_t ns3::JakesPropagationLossModel::GetNRays() const [member function]
+    cls.add_method('GetNRays', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## jakes-propagation-loss-model.h: static ns3::TypeId ns3::JakesPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNOscillators(uint8_t nOscillators) [member function]
+    cls.add_method('SetNOscillators', 
+                   'void', 
+                   [param('uint8_t', 'nOscillators')])
+    ## jakes-propagation-loss-model.h: void ns3::JakesPropagationLossModel::SetNRays(uint8_t nRays) [member function]
+    cls.add_method('SetNRays', 
+                   'void', 
+                   [param('uint8_t', 'nRays')])
+    ## jakes-propagation-loss-model.h: double ns3::JakesPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3LogDistancePropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::LogDistancePropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::LogDistancePropagationLossModel::LogDistancePropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetPathLossExponent(double n) [member function]
+    cls.add_method('SetPathLossExponent', 
+                   'void', 
+                   [param('double', 'n')])
+    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::GetPathLossExponent() const [member function]
+    cls.add_method('GetPathLossExponent', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## propagation-loss-model.h: void ns3::LogDistancePropagationLossModel::SetReference(double referenceDistance, double referenceLoss) [member function]
+    cls.add_method('SetReference', 
+                   'void', 
+                   [param('double', 'referenceDistance'), param('double', 'referenceLoss')])
+    ## propagation-loss-model.h: double ns3::LogDistancePropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3MatrixPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::MatrixPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::MatrixPropagationLossModel::MatrixPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetLoss(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, double loss, bool symmetric=true) [member function]
+    cls.add_method('SetLoss', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('double', 'loss'), param('bool', 'symmetric', default_value='true')])
+    ## propagation-loss-model.h: void ns3::MatrixPropagationLossModel::SetDefaultLoss(double arg0) [member function]
+    cls.add_method('SetDefaultLoss', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## propagation-loss-model.h: double ns3::MatrixPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3NakagamiPropagationLossModel_methods(root_module, cls):
+    ## propagation-loss-model.h: static ns3::TypeId ns3::NakagamiPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## propagation-loss-model.h: double ns3::NakagamiPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPower', 
+                   'double', 
+                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_functions(root_module):
+    module = root_module
+    register_functions_ns3_Config(module.get_submodule('Config'), root_module)
+    register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
+    register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
+    register_functions_ns3_aodv(module.get_submodule('aodv'), root_module)
+    register_functions_ns3_dot11s(module.get_submodule('dot11s'), root_module)
+    register_functions_ns3_dsdv(module.get_submodule('dsdv'), root_module)
+    register_functions_ns3_flame(module.get_submodule('flame'), root_module)
+    register_functions_ns3_internal(module.get_submodule('internal'), root_module)
+    register_functions_ns3_olsr(module.get_submodule('olsr'), root_module)
+    return
+
+def register_functions_ns3_Config(module, root_module):
+    return
+
+def register_functions_ns3_FatalImpl(module, root_module):
+    return
+
+def register_functions_ns3_addressUtils(module, root_module):
+    return
+
+def register_functions_ns3_aodv(module, root_module):
+    return
+
+def register_functions_ns3_dot11s(module, root_module):
+    return
+
+def register_functions_ns3_dsdv(module, root_module):
+    return
+
+def register_functions_ns3_flame(module, root_module):
+    return
+
+def register_functions_ns3_internal(module, root_module):
+    return
+
+def register_functions_ns3_olsr(module, root_module):
+    return
+
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_simulator.py	Tue Feb 08 13:08:45 2011 -0500
@@ -5,7 +5,7 @@
     
     ## event-id.h: ns3::EventId [class]
     module.add_class('EventId')
-    ## high-precision-128.h: ns3::HighPrecision [class]
+    ## high-precision-double.h: ns3::HighPrecision [class]
     module.add_class('HighPrecision')
     ## simulator.h: ns3::Simulator [class]
     module.add_class('Simulator', is_singleton=True)
@@ -250,67 +250,65 @@
 
 def register_Ns3HighPrecision_methods(root_module, cls):
     cls.add_output_stream_operator()
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(ns3::HighPrecision const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HighPrecision const &', 'arg0')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t high, uint64_t low) [constructor]
-    cls.add_constructor([param('int64_t', 'high'), param('uint64_t', 'low')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision() [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision() [constructor]
     cls.add_constructor([])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(int64_t value, bool dummy) [constructor]
     cls.add_constructor([param('int64_t', 'value'), param('bool', 'dummy')])
-    ## high-precision-128.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
+    ## high-precision-double.h: ns3::HighPrecision::HighPrecision(double value) [constructor]
     cls.add_constructor([param('double', 'value')])
-    ## high-precision-128.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Add(ns3::HighPrecision const & o) [member function]
     cls.add_method('Add', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
+    ## high-precision-double.h: int ns3::HighPrecision::Compare(ns3::HighPrecision const & o) const [member function]
     cls.add_method('Compare', 
                    'int', 
                    [param('ns3::HighPrecision const &', 'o')], 
                    is_const=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Div(ns3::HighPrecision const & o) [member function]
     cls.add_method('Div', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: double ns3::HighPrecision::GetDouble() const [member function]
+    ## high-precision-double.h: double ns3::HighPrecision::GetDouble() const [member function]
     cls.add_method('GetDouble', 
                    'double', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetHigh() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetHigh() const [member function]
     cls.add_method('GetHigh', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
+    ## high-precision-double.h: int64_t ns3::HighPrecision::GetInteger() const [member function]
     cls.add_method('GetInteger', 
                    'int64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: uint64_t ns3::HighPrecision::GetLow() const [member function]
+    ## high-precision-double.h: uint64_t ns3::HighPrecision::GetLow() const [member function]
     cls.add_method('GetLow', 
                    'uint64_t', 
                    [], 
                    is_const=True)
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Invert(uint64_t v) [member function]
     cls.add_method('Invert', 
                    'ns3::HighPrecision', 
                    [param('uint64_t', 'v')], 
                    is_static=True)
-    ## high-precision-128.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Mul(ns3::HighPrecision const & o) [member function]
     cls.add_method('Mul', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::MulByInvert(ns3::HighPrecision const & o) [member function]
     cls.add_method('MulByInvert', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
+    ## high-precision-double.h: void ns3::HighPrecision::Sub(ns3::HighPrecision const & o) [member function]
     cls.add_method('Sub', 
                    'void', 
                    [param('ns3::HighPrecision const &', 'o')])
-    ## high-precision-128.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
+    ## high-precision-double.h: static ns3::HighPrecision ns3::HighPrecision::Zero() [member function]
     cls.add_method('Zero', 
                    'ns3::HighPrecision', 
                    [], 
@@ -410,13 +408,13 @@
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('*=', param('ns3::Time const &', 'right'))
-    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
     cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_spectrum.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_spectrum.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,24 +3,58 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper [class]
+    module.add_class('AdhocAlohaNoackIdealPhyHelper')
+    ## spectrum-model.h: ns3::BandInfo [struct]
+    module.add_class('BandInfo')
     ## microwave-oven-spectrum-value-helper.h: ns3::MicrowaveOvenSpectrumValueHelper [class]
     module.add_class('MicrowaveOvenSpectrumValueHelper')
     ## multi-model-spectrum-channel.h: ns3::RxSpectrumModelInfo [class]
     module.add_class('RxSpectrumModelInfo')
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper [class]
+    module.add_class('SpectrumAnalyzerHelper')
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper [class]
+    module.add_class('SpectrumChannelHelper')
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper [class]
+    module.add_class('SpectrumPhyHelper')
+    ## spectrum-type.h: ns3::SpectrumType [class]
+    module.add_class('SpectrumType')
+    ## spectrum-type.h: ns3::SpectrumTypeFactory [class]
+    module.add_class('SpectrumTypeFactory')
     ## multi-model-spectrum-channel.h: ns3::TxSpectrumModelInfo [class]
     module.add_class('TxSpectrumModelInfo')
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper [class]
+    module.add_class('WaveformGeneratorHelper')
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValue5MhzFactory [class]
     module.add_class('WifiSpectrumValue5MhzFactory', allow_subclassing=True)
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValueHelper [class]
     module.add_class('WifiSpectrumValueHelper', allow_subclassing=True)
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumConverter', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumConverter>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumModel', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumModel>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h: ns3::SimpleRefCount<ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::SpectrumValue', 'ns3::empty', 'ns3::DefaultDeleter<ns3::SpectrumValue>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## spectrum-converter.h: ns3::SpectrumConverter [class]
+    module.add_class('SpectrumConverter', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumConverter, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumConverter> >'])
     ## spectrum-error-model.h: ns3::SpectrumErrorModel [class]
     module.add_class('SpectrumErrorModel', parent=root_module['ns3::Object'])
     ## spectrum-interference.h: ns3::SpectrumInterference [class]
     module.add_class('SpectrumInterference', parent=root_module['ns3::Object'])
+    ## spectrum-model.h: ns3::SpectrumModel [class]
+    module.add_class('SpectrumModel', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumModel> >'])
+    ## spectrum-phy.h: ns3::SpectrumPhy [class]
+    module.add_class('SpectrumPhy', parent=root_module['ns3::Object'])
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel [class]
+    module.add_class('SpectrumPropagationLossModel', parent=root_module['ns3::Object'])
+    ## spectrum-value.h: ns3::SpectrumValue [class]
+    module.add_class('SpectrumValue', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter<ns3::SpectrumValue> >'])
     ## waveform-generator.h: ns3::WaveformGenerator [class]
     module.add_class('WaveformGenerator', parent=root_module['ns3::SpectrumPhy'])
     ## aloha-noack-mac-header.h: ns3::AlohaNoackMacHeader [class]
     module.add_class('AlohaNoackMacHeader', parent=root_module['ns3::Header'])
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel [class]
+    module.add_class('FriisSpectrumPropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy [class]
     module.add_class('HalfDuplexIdealPhy', parent=root_module['ns3::SpectrumPhy'])
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy::State [enumeration]
@@ -31,6 +65,8 @@
     module.add_class('ShannonSpectrumErrorModel', parent=root_module['ns3::SpectrumErrorModel'])
     ## spectrum-analyzer.h: ns3::SpectrumAnalyzer [class]
     module.add_class('SpectrumAnalyzer', parent=root_module['ns3::SpectrumPhy'])
+    ## spectrum-channel.h: ns3::SpectrumChannel [class]
+    module.add_class('SpectrumChannel', parent=root_module['ns3::Channel'])
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice [class]
     module.add_class('AlohaNoackNetDevice', parent=root_module['ns3::NetDevice'])
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice::State [enumeration]
@@ -39,6 +75,11 @@
     module.add_class('MultiModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
     ## single-model-spectrum-channel.h: ns3::SingleModelSpectrumChannel [class]
     module.add_class('SingleModelSpectrumChannel', parent=root_module['ns3::SpectrumChannel'])
+    module.add_container('ns3::SpectrumConverterMap_t', ('unsigned int', 'ns3::SpectrumConverter'), container_type='map')
+    module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
+    typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
@@ -48,6 +89,12 @@
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >', 'ns3::RxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >*', 'ns3::RxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::RxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::RxSpectrumModelInfo > > >&', 'ns3::RxSpectrumModelInfoMap_t&')
+    typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
+    typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
+    typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', 'ns3::Bands')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', 'ns3::Bands*')
+    typehandlers.add_type_alias('std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', 'ns3::Bands&')
     
     ## Register a nested module for the namespace Config
     
@@ -140,24 +187,98 @@
     
 
 def register_methods(root_module):
+    register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, root_module['ns3::AdhocAlohaNoackIdealPhyHelper'])
+    register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo'])
     register_Ns3MicrowaveOvenSpectrumValueHelper_methods(root_module, root_module['ns3::MicrowaveOvenSpectrumValueHelper'])
     register_Ns3RxSpectrumModelInfo_methods(root_module, root_module['ns3::RxSpectrumModelInfo'])
+    register_Ns3SpectrumAnalyzerHelper_methods(root_module, root_module['ns3::SpectrumAnalyzerHelper'])
+    register_Ns3SpectrumChannelHelper_methods(root_module, root_module['ns3::SpectrumChannelHelper'])
+    register_Ns3SpectrumPhyHelper_methods(root_module, root_module['ns3::SpectrumPhyHelper'])
+    register_Ns3SpectrumType_methods(root_module, root_module['ns3::SpectrumType'])
+    register_Ns3SpectrumTypeFactory_methods(root_module, root_module['ns3::SpectrumTypeFactory'])
     register_Ns3TxSpectrumModelInfo_methods(root_module, root_module['ns3::TxSpectrumModelInfo'])
+    register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper'])
     register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory'])
     register_Ns3WifiSpectrumValueHelper_methods(root_module, root_module['ns3::WifiSpectrumValueHelper'])
+    register_Ns3SpectrumConverter_methods(root_module, root_module['ns3::SpectrumConverter'])
     register_Ns3SpectrumErrorModel_methods(root_module, root_module['ns3::SpectrumErrorModel'])
     register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference'])
+    register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel'])
+    register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy'])
+    register_Ns3SpectrumPropagationLossModel_methods(root_module, root_module['ns3::SpectrumPropagationLossModel'])
+    register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue'])
     register_Ns3WaveformGenerator_methods(root_module, root_module['ns3::WaveformGenerator'])
     register_Ns3AlohaNoackMacHeader_methods(root_module, root_module['ns3::AlohaNoackMacHeader'])
+    register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, root_module['ns3::FriisSpectrumPropagationLossModel'])
     register_Ns3HalfDuplexIdealPhy_methods(root_module, root_module['ns3::HalfDuplexIdealPhy'])
     register_Ns3NonCommunicatingNetDevice_methods(root_module, root_module['ns3::NonCommunicatingNetDevice'])
     register_Ns3ShannonSpectrumErrorModel_methods(root_module, root_module['ns3::ShannonSpectrumErrorModel'])
     register_Ns3SpectrumAnalyzer_methods(root_module, root_module['ns3::SpectrumAnalyzer'])
+    register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel'])
     register_Ns3AlohaNoackNetDevice_methods(root_module, root_module['ns3::AlohaNoackNetDevice'])
     register_Ns3MultiModelSpectrumChannel_methods(root_module, root_module['ns3::MultiModelSpectrumChannel'])
     register_Ns3SingleModelSpectrumChannel_methods(root_module, root_module['ns3::SingleModelSpectrumChannel'])
     return
 
+def register_Ns3AdhocAlohaNoackIdealPhyHelper_methods(root_module, cls):
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper(ns3::AdhocAlohaNoackIdealPhyHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AdhocAlohaNoackIdealPhyHelper const &', 'arg0')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper() [constructor]
+    cls.add_constructor([])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: ns3::NetDeviceContainer ns3::AdhocAlohaNoackIdealPhyHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> noisePsd) [member function]
+    cls.add_method('SetNoisePowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'noisePsd')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## adhoc-aloha-noack-ideal-phy-helper.h: void ns3::AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    return
+
+def register_Ns3BandInfo_methods(root_module, cls):
+    ## spectrum-model.h: ns3::BandInfo::BandInfo() [constructor]
+    cls.add_constructor([])
+    ## spectrum-model.h: ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BandInfo const &', 'arg0')])
+    ## spectrum-model.h: ns3::BandInfo::fc [variable]
+    cls.add_instance_attribute('fc', 'double', is_const=False)
+    ## spectrum-model.h: ns3::BandInfo::fh [variable]
+    cls.add_instance_attribute('fh', 'double', is_const=False)
+    ## spectrum-model.h: ns3::BandInfo::fl [variable]
+    cls.add_instance_attribute('fl', 'double', is_const=False)
+    return
+
 def register_Ns3MicrowaveOvenSpectrumValueHelper_methods(root_module, cls):
     ## microwave-oven-spectrum-value-helper.h: ns3::MicrowaveOvenSpectrumValueHelper::MicrowaveOvenSpectrumValueHelper() [constructor]
     cls.add_constructor([])
@@ -186,6 +307,144 @@
     cls.add_instance_attribute('m_rxSpectrumModel', 'ns3::Ptr< ns3::SpectrumModel const >', is_const=False)
     return
 
+def register_Ns3SpectrumAnalyzerHelper_methods(root_module, cls):
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper(ns3::SpectrumAnalyzerHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumAnalyzerHelper const &', 'arg0')])
+    ## spectrum-analyzer-helper.h: ns3::SpectrumAnalyzerHelper::SpectrumAnalyzerHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::EnableAsciiAll(std::string prefix) [member function]
+    cls.add_method('EnableAsciiAll', 
+                   'void', 
+                   [param('std::string', 'prefix')])
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: ns3::NetDeviceContainer ns3::SpectrumAnalyzerHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## spectrum-analyzer-helper.h: void ns3::SpectrumAnalyzerHelper::SetRxSpectrumModel(ns3::Ptr<ns3::SpectrumModel> m) [member function]
+    cls.add_method('SetRxSpectrumModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumModel >', 'm')])
+    return
+
+def register_Ns3SpectrumChannelHelper_methods(root_module, cls):
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-helper.h: ns3::SpectrumChannelHelper::SpectrumChannelHelper(ns3::SpectrumChannelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumChannelHelper const &', 'arg0')])
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::AddSpectrumPropagationLoss(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('AddSpectrumPropagationLoss', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumChannel> ns3::SpectrumChannelHelper::Create() const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::SpectrumChannel >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-helper.h: static ns3::SpectrumChannelHelper ns3::SpectrumChannelHelper::Default() [member function]
+    cls.add_method('Default', 
+                   'ns3::SpectrumChannelHelper', 
+                   [], 
+                   is_static=True)
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetChannel(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: void ns3::SpectrumChannelHelper::SetPropagationDelay(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPropagationDelay', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    return
+
+def register_Ns3SpectrumPhyHelper_methods(root_module, cls):
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper() [constructor]
+    cls.add_constructor([])
+    ## spectrum-helper.h: ns3::SpectrumPhyHelper::SpectrumPhyHelper(ns3::SpectrumPhyHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPhyHelper const &', 'arg0')])
+    ## spectrum-helper.h: ns3::Ptr<ns3::SpectrumPhy> ns3::SpectrumPhyHelper::Create(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::NetDevice> device) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::SpectrumPhy >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_const=True)
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhy(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## spectrum-helper.h: void ns3::SpectrumPhyHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    return
+
+def register_Ns3SpectrumType_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## spectrum-type.h: ns3::SpectrumType::SpectrumType(ns3::SpectrumType const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumType const &', 'arg0')])
+    ## spectrum-type.h: std::string ns3::SpectrumType::GetName() const [member function]
+    cls.add_method('GetName', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## spectrum-type.h: uint32_t ns3::SpectrumType::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SpectrumTypeFactory_methods(root_module, cls):
+    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory() [constructor]
+    cls.add_constructor([])
+    ## spectrum-type.h: ns3::SpectrumTypeFactory::SpectrumTypeFactory(ns3::SpectrumTypeFactory const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumTypeFactory const &', 'arg0')])
+    ## spectrum-type.h: static ns3::SpectrumType ns3::SpectrumTypeFactory::Create(std::string name) [member function]
+    cls.add_method('Create', 
+                   'ns3::SpectrumType', 
+                   [param('std::string', 'name')], 
+                   is_static=True)
+    ## spectrum-type.h: static std::string ns3::SpectrumTypeFactory::GetNameByUid(uint32_t uid) [member function]
+    cls.add_method('GetNameByUid', 
+                   'std::string', 
+                   [param('uint32_t', 'uid')], 
+                   is_static=True)
+    return
+
 def register_Ns3TxSpectrumModelInfo_methods(root_module, cls):
     ## multi-model-spectrum-channel.h: ns3::TxSpectrumModelInfo::TxSpectrumModelInfo(ns3::TxSpectrumModelInfo const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TxSpectrumModelInfo const &', 'arg0')])
@@ -197,6 +456,48 @@
     cls.add_instance_attribute('m_txSpectrumModel', 'ns3::Ptr< ns3::SpectrumModel const >', is_const=False)
     return
 
+def register_Ns3WaveformGeneratorHelper_methods(root_module, cls):
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper(ns3::WaveformGeneratorHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WaveformGeneratorHelper const &', 'arg0')])
+    ## waveform-generator-helper.h: ns3::WaveformGeneratorHelper::WaveformGeneratorHelper() [constructor]
+    cls.add_constructor([])
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: ns3::NetDeviceContainer ns3::WaveformGeneratorHelper::Install(std::string nodeName) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('std::string', 'nodeName')], 
+                   is_const=True)
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(ns3::Ptr<ns3::SpectrumChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetChannel(std::string channelName) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('std::string', 'channelName')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
+    cls.add_method('SetDeviceAttribute', 
+                   'void', 
+                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetPhyAttribute(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('SetPhyAttribute', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')])
+    ## waveform-generator-helper.h: void ns3::WaveformGeneratorHelper::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
+    cls.add_method('SetTxPowerSpectralDensity', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
+    return
+
 def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls):
     ## wifi-spectrum-value-helper.h: ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor]
     cls.add_constructor([])
@@ -241,6 +542,20 @@
                    is_pure_virtual=True, is_virtual=True)
     return
 
+def register_Ns3SpectrumConverter_methods(root_module, cls):
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::SpectrumConverter const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumConverter const &', 'arg0')])
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter(ns3::Ptr<ns3::SpectrumModel const> fromSpectrumModel, ns3::Ptr<ns3::SpectrumModel const> toSpectrumModel) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'fromSpectrumModel'), param('ns3::Ptr< ns3::SpectrumModel const >', 'toSpectrumModel')])
+    ## spectrum-converter.h: ns3::SpectrumConverter::SpectrumConverter() [constructor]
+    cls.add_constructor([])
+    ## spectrum-converter.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumConverter::Convert(ns3::Ptr<ns3::SpectrumValue const> vvf) const [member function]
+    cls.add_method('Convert', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'vvf')], 
+                   is_const=True)
+    return
+
 def register_Ns3SpectrumErrorModel_methods(root_module, cls):
     ## spectrum-error-model.h: ns3::SpectrumErrorModel::SpectrumErrorModel() [constructor]
     cls.add_constructor([])
@@ -295,6 +610,184 @@
                    visibility='protected', is_virtual=True)
     return
 
+def register_Ns3SpectrumModel_methods(root_module, cls):
+    cls.add_binary_comparison_operator('==')
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')])
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(std::vector<double, std::allocator<double> > centerFreqs) [constructor]
+    cls.add_constructor([param('std::vector< double >', 'centerFreqs')])
+    ## spectrum-model.h: ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor]
+    cls.add_constructor([param('ns3::Bands', 'bands')])
+    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::Begin() const [member function]
+    cls.add_method('Begin', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumModel::End() const [member function]
+    cls.add_method('End', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: size_t ns3::SpectrumModel::GetNumBands() const [member function]
+    cls.add_method('GetNumBands', 
+                   'size_t', 
+                   [], 
+                   is_const=True)
+    ## spectrum-model.h: ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'ns3::SpectrumModelUid_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3SpectrumPhy_methods(root_module, cls):
+    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy() [constructor]
+    cls.add_constructor([])
+    ## spectrum-phy.h: ns3::SpectrumPhy::SpectrumPhy(ns3::SpectrumPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPhy const &', 'arg0')])
+    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::SpectrumPhy::GetMobility() [member function]
+    cls.add_method('GetMobility', 
+                   'ns3::Ptr< ns3::Object >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumPhy::GetRxSpectrumModel() const [member function]
+    cls.add_method('GetRxSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## spectrum-phy.h: static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'd')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
+    cls.add_method('SetMobility', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Object >', 'm')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-phy.h: void ns3::SpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
+    cls.add_method('StartRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3SpectrumPropagationLossModel_methods(root_module, cls):
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel(ns3::SpectrumPropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumPropagationLossModel const &', 'arg0')])
+    ## spectrum-propagation-loss-model.h: ns3::SpectrumPropagationLossModel::SpectrumPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::CalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('CalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True)
+    ## spectrum-propagation-loss-model.h: static ns3::TypeId ns3::SpectrumPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::SetNext(ns3::Ptr<ns3::SpectrumPropagationLossModel> next) [member function]
+    cls.add_method('SetNext', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'next')])
+    ## spectrum-propagation-loss-model.h: void ns3::SpectrumPropagationLossModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## spectrum-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3SpectrumValue_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_unary_numeric_operator('-')
+    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', 'right'))
+    cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('*=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('+=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('-=', param('double', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', 'right'))
+    cls.add_inplace_numeric_operator('/=', param('double', 'right'))
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')])
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue(ns3::Ptr<ns3::SpectrumModel const> sm) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')])
+    ## spectrum-value.h: ns3::SpectrumValue::SpectrumValue() [constructor]
+    cls.add_constructor([])
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsBegin() const [member function]
+    cls.add_method('ConstBandsBegin', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const ns3::BandInfo*,std::vector<ns3::BandInfo, std::allocator<ns3::BandInfo> > > ns3::SpectrumValue::ConstBandsEnd() const [member function]
+    cls.add_method('ConstBandsEnd', 
+                   '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesBegin() const [member function]
+    cls.add_method('ConstValuesBegin', 
+                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<const double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ConstValuesEnd() const [member function]
+    cls.add_method('ConstValuesEnd', 
+                   '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumValue> ns3::SpectrumValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::Ptr<ns3::SpectrumModel const> ns3::SpectrumValue::GetSpectrumModel() const [member function]
+    cls.add_method('GetSpectrumModel', 
+                   'ns3::Ptr< ns3::SpectrumModel const >', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function]
+    cls.add_method('GetSpectrumModelUid', 
+                   'ns3::SpectrumModelUid_t', 
+                   [], 
+                   is_const=True)
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesBegin() [member function]
+    cls.add_method('ValuesBegin', 
+                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
+                   [])
+    ## spectrum-value.h: __gnu_cxx::__normal_iterator<double*,std::vector<double, std::allocator<double> > > ns3::SpectrumValue::ValuesEnd() [member function]
+    cls.add_method('ValuesEnd', 
+                   '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', 
+                   [])
+    return
+
 def register_Ns3WaveformGenerator_methods(root_module, cls):
     ## waveform-generator.h: ns3::WaveformGenerator::WaveformGenerator(ns3::WaveformGenerator const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::WaveformGenerator const &', 'arg0')])
@@ -443,6 +936,28 @@
                    [param('ns3::Mac48Address', 'source')])
     return
 
+def register_Ns3FriisSpectrumPropagationLossModel_methods(root_module, cls):
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel(ns3::FriisSpectrumPropagationLossModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FriisSpectrumPropagationLossModel const &', 'arg0')])
+    ## friis-spectrum-propagation-loss.h: ns3::FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel() [constructor]
+    cls.add_constructor([])
+    ## friis-spectrum-propagation-loss.h: double ns3::FriisSpectrumPropagationLossModel::CalculateLoss(double f, double d) const [member function]
+    cls.add_method('CalculateLoss', 
+                   'double', 
+                   [param('double', 'f'), param('double', 'd')], 
+                   is_const=True)
+    ## friis-spectrum-propagation-loss.h: ns3::Ptr<ns3::SpectrumValue> ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
+    cls.add_method('DoCalcRxPowerSpectralDensity', 
+                   'ns3::Ptr< ns3::SpectrumValue >', 
+                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
+                   is_const=True, is_virtual=True)
+    ## friis-spectrum-propagation-loss.h: static ns3::TypeId ns3::FriisSpectrumPropagationLossModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3HalfDuplexIdealPhy_methods(root_module, cls):
     ## half-duplex-ideal-phy.h: ns3::HalfDuplexIdealPhy::HalfDuplexIdealPhy(ns3::HalfDuplexIdealPhy const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::HalfDuplexIdealPhy const &', 'arg0')])
@@ -784,6 +1299,38 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3SpectrumChannel_methods(root_module, cls):
+    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel() [constructor]
+    cls.add_constructor([])
+    ## spectrum-channel.h: ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')])
+    ## spectrum-channel.h: void ns3::SpectrumChannel::AddRx(ns3::Ptr<ns3::SpectrumPhy> phy) [member function]
+    cls.add_method('AddRx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr<ns3::SpectrumPropagationLossModel> loss) [member function]
+    cls.add_method('AddSpectrumPropagationLossModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr<ns3::PropagationDelayModel> delay) [member function]
+    cls.add_method('SetPropagationDelayModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## spectrum-channel.h: void ns3::SpectrumChannel::StartTx(ns3::Ptr<ns3::PacketBurst> p, ns3::Ptr<ns3::SpectrumValue> txPsd, ns3::SpectrumType st, ns3::Time duration, ns3::Ptr<ns3::SpectrumPhy> sender) [member function]
+    cls.add_method('StartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::PacketBurst >', 'p'), param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration'), param('ns3::Ptr< ns3::SpectrumPhy >', 'sender')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3AlohaNoackNetDevice_methods(root_module, cls):
     ## aloha-noack-net-device.h: ns3::AlohaNoackNetDevice::AlohaNoackNetDevice(ns3::AlohaNoackNetDevice const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::AlohaNoackNetDevice const &', 'arg0')])
@@ -1075,6 +1622,38 @@
 
 def register_functions(root_module):
     module = root_module
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log10(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log10', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Log2(ns3::SpectrumValue const & arg) [free function]
+    module.add_function('Log2', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'arg')])
+    ## spectrum-value.h: extern double ns3::Norm(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Norm', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(ns3::SpectrumValue const & base, double exp) [free function]
+    module.add_function('Pow', 
+                        'ns3::SpectrumValue', 
+                        [param('ns3::SpectrumValue const &', 'base'), param('double', 'exp')])
+    ## spectrum-value.h: extern ns3::SpectrumValue ns3::Pow(double base, ns3::SpectrumValue const & exp) [free function]
+    module.add_function('Pow', 
+                        'ns3::SpectrumValue', 
+                        [param('double', 'base'), param('ns3::SpectrumValue const &', 'exp')])
+    ## spectrum-value.h: extern double ns3::Prod(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Prod', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
+    ## spectrum-value.h: extern double ns3::Sum(ns3::SpectrumValue const & x) [free function]
+    module.add_function('Sum', 
+                        'double', 
+                        [param('ns3::SpectrumValue const &', 'x')])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_static_routing.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_static_routing.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,22 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry [class]
+    module.add_class('Ipv4MulticastRoutingTableEntry')
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry [class]
+    module.add_class('Ipv4RoutingTableEntry')
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper [class]
+    module.add_class('Ipv4StaticRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry [class]
+    module.add_class('Ipv6MulticastRoutingTableEntry')
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry [class]
+    module.add_class('Ipv6RoutingTableEntry')
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper [class]
+    module.add_class('Ipv6StaticRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
+    module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting [class]
+    module.add_class('Ipv6StaticRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +111,635 @@
     
 
 def register_methods(root_module):
+    register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv4MulticastRoutingTableEntry'])
+    register_Ns3Ipv4RoutingTableEntry_methods(root_module, root_module['ns3::Ipv4RoutingTableEntry'])
+    register_Ns3Ipv4StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv4StaticRoutingHelper'])
+    register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv6MulticastRoutingTableEntry'])
+    register_Ns3Ipv6RoutingTableEntry_methods(root_module, root_module['ns3::Ipv6RoutingTableEntry'])
+    register_Ns3Ipv6StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv6StaticRoutingHelper'])
+    register_Ns3Ipv4StaticRouting_methods(root_module, root_module['ns3::Ipv4StaticRouting'])
+    register_Ns3Ipv6StaticRouting_methods(root_module, root_module['ns3::Ipv6StaticRouting'])
+    return
+
+def register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const &', 'route')])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const *', 'route')])
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('CreateMulticastRoute', 
+                   'ns3::Ipv4MulticastRoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetInputInterface() const [member function]
+    cls.add_method('GetInputInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
+    cls.add_method('GetNOutputInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
+    cls.add_method('GetOutputInterface', 
+                   'uint32_t', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
+    cls.add_method('GetOutputInterfaces', 
+                   'std::vector< unsigned int >', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv4RoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const &', 'route')])
+    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const *', 'route')])
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateDefaultRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDestNetwork() const [member function]
+    cls.add_method('GetDestNetwork', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Mask ns3::Ipv4RoutingTableEntry::GetDestNetworkMask() const [member function]
+    cls.add_method('GetDestNetworkMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsDefault() const [member function]
+    cls.add_method('IsDefault', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsGateway() const [member function]
+    cls.add_method('IsGateway', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsHost() const [member function]
+    cls.add_method('IsHost', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsNetwork() const [member function]
+    cls.add_method('IsNetwork', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv4StaticRoutingHelper_methods(root_module, cls):
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper(ns3::Ipv4StaticRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4StaticRoutingHelper const &', 'arg0')])
+    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper * ns3::Ipv4StaticRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv4StaticRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4StaticRouting> ns3::Ipv4StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv4> ipv4) const [member function]
+    cls.add_method('GetStaticRouting', 
+                   'ns3::Ptr< ns3::Ipv4StaticRouting >', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_const=True)
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ptr<ns3::NetDevice> nd) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, std::string ndName) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('std::string', 'ndName')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, ns3::Ptr<ns3::NetDevice> nd) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
+    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, std::string ndName) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('std::string', 'ndName')])
+    return
+
+def register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const &', 'route')])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const *', 'route')])
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('CreateMulticastRoute', 
+                   'ns3::Ipv6MulticastRoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetInputInterface() const [member function]
+    cls.add_method('GetInputInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
+    cls.add_method('GetNOutputInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
+    cls.add_method('GetOutputInterface', 
+                   'uint32_t', 
+                   [param('uint32_t', 'n')], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
+    cls.add_method('GetOutputInterfaces', 
+                   'std::vector< unsigned int >', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3Ipv6RoutingTableEntry_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry() [constructor]
+    cls.add_constructor([])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const & route) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const &', 'route')])
+    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const * route) [constructor]
+    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const *', 'route')])
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateDefaultRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address()) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address()')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, uint32_t interface) [member function]
+    cls.add_method('CreateHostRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface) [member function]
+    cls.add_method('CreateNetworkRouteTo', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface')], 
+                   is_static=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDestNetwork() const [member function]
+    cls.add_method('GetDestNetwork', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Prefix ns3::Ipv6RoutingTableEntry::GetDestNetworkPrefix() const [member function]
+    cls.add_method('GetDestNetworkPrefix', 
+                   'ns3::Ipv6Prefix', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6RoutingTableEntry::GetInterface() const [member function]
+    cls.add_method('GetInterface', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetPrefixToUse() const [member function]
+    cls.add_method('GetPrefixToUse', 
+                   'ns3::Ipv6Address', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsDefault() const [member function]
+    cls.add_method('IsDefault', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsGateway() const [member function]
+    cls.add_method('IsGateway', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsHost() const [member function]
+    cls.add_method('IsHost', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsNetwork() const [member function]
+    cls.add_method('IsNetwork', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv6-routing-table-entry.h: void ns3::Ipv6RoutingTableEntry::SetPrefixToUse(ns3::Ipv6Address prefix) [member function]
+    cls.add_method('SetPrefixToUse', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'prefix')])
+    return
+
+def register_Ns3Ipv6StaticRoutingHelper_methods(root_module, cls):
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper() [constructor]
+    cls.add_constructor([])
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper(ns3::Ipv6StaticRoutingHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6StaticRoutingHelper const &', 'arg0')])
+    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper * ns3::Ipv6StaticRoutingHelper::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ipv6StaticRoutingHelper *', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
+    cls.add_method('Create', 
+                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_const=True, is_virtual=True)
+    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6StaticRouting> ns3::Ipv6StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv6> ipv6) const [member function]
+    cls.add_method('GetStaticRouting', 
+                   'ns3::Ptr< ns3::Ipv6StaticRouting >', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_const=True)
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('std::string', 'nName'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
+    return
+
+def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
+    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
+    cls.add_method('GetDefaultRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [])
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetMetric(uint32_t index) [member function]
+    cls.add_method('GetMetric', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
+    cls.add_method('GetMulticastRoute', 
+                   'ns3::Ipv4MulticastRoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
+    cls.add_method('GetNMulticastRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() const [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetRoute(uint32_t i) const [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv4RoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-static-routing.h: static ns3::TypeId ns3::Ipv4StaticRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'index')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'outputInterface')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('SetDefaultRoute', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_virtual=True)
+    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3Ipv6StaticRouting_methods(root_module, cls):
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting(ns3::Ipv6StaticRouting const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv6StaticRouting const &', 'arg0')])
+    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting() [constructor]
+    cls.add_constructor([])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddHostRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
+    cls.add_method('AddMulticastRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface, uint32_t metric=0) [member function]
+    cls.add_method('AddNetworkRouteTo', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetDefaultRoute() [member function]
+    cls.add_method('GetDefaultRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [])
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetMetric(uint32_t index) [member function]
+    cls.add_method('GetMetric', 
+                   'uint32_t', 
+                   [param('uint32_t', 'index')])
+    ## ipv6-static-routing.h: ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
+    cls.add_method('GetMulticastRoute', 
+                   'ns3::Ipv6MulticastRoutingTableEntry', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNMulticastRoutes() const [member function]
+    cls.add_method('GetNMulticastRoutes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNRoutes() [member function]
+    cls.add_method('GetNRoutes', 
+                   'uint32_t', 
+                   [])
+    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetRoute(uint32_t i) [member function]
+    cls.add_method('GetRoute', 
+                   'ns3::Ipv6RoutingTableEntry', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: static ns3::TypeId ns3::Ipv6StaticRouting::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::HasNetworkDest(ns3::Ipv6Address dest, uint32_t interfaceIndex) [member function]
+    cls.add_method('HasNetworkDest', 
+                   'bool', 
+                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interfaceIndex')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyAddRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
+    cls.add_method('NotifyRemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RemoveMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'bool', 
+                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveMulticastRoute(uint32_t i) [member function]
+    cls.add_method('RemoveMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(uint32_t i) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('uint32_t', 'i')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(ns3::Ipv6Address network, ns3::Ipv6Prefix prefix, uint32_t ifIndex, ns3::Ipv6Address prefixToUse) [member function]
+    cls.add_method('RemoveRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'prefix'), param('uint32_t', 'ifIndex'), param('ns3::Ipv6Address', 'prefixToUse')])
+    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv6Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
+    cls.add_method('SetDefaultMulticastRoute', 
+                   'void', 
+                   [param('uint32_t', 'outputInterface')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
+    cls.add_method('SetDefaultRoute', 
+                   'void', 
+                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
+    cls.add_method('SetIpv6', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
+                   is_virtual=True)
+    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_uan.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_uan.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,106 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## uan-mac-rc.h: ns3::Reservation [class]
+    module.add_class('Reservation')
+    ## uan-prop-model.h: ns3::Tap [class]
+    module.add_class('Tap')
+    ## uan-address.h: ns3::UanAddress [class]
+    module.add_class('UanAddress')
+    ## uan-address.h: ns3::UanAddress [class]
+    root_module['ns3::UanAddress'].implicitly_converts_to(root_module['ns3::Address'])
+    ## uan-helper.h: ns3::UanHelper [class]
+    module.add_class('UanHelper')
+    ## uan-tx-mode.h: ns3::UanModesList [class]
+    module.add_class('UanModesList')
+    ## uan-transducer.h: ns3::UanPacketArrival [class]
+    module.add_class('UanPacketArrival')
+    ## uan-prop-model.h: ns3::UanPdp [class]
+    module.add_class('UanPdp')
+    ## uan-phy.h: ns3::UanPhyListener [class]
+    module.add_class('UanPhyListener', allow_subclassing=True)
+    ## uan-tx-mode.h: ns3::UanTxMode [class]
+    module.add_class('UanTxMode')
+    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType [enumeration]
+    module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
+    ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
+    module.add_class('UanTxModeFactory')
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper [class]
+    module.add_class('AcousticModemEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
+    ## uan-header-common.h: ns3::UanHeaderCommon [class]
+    module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
+    module.add_class('UanHeaderRcAck', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts [class]
+    module.add_class('UanHeaderRcCts', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal [class]
+    module.add_class('UanHeaderRcCtsGlobal', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcData [class]
+    module.add_class('UanHeaderRcData', parent=root_module['ns3::Header'])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts [class]
+    module.add_class('UanHeaderRcRts', parent=root_module['ns3::Header'])
+    ## uan-mac.h: ns3::UanMac [class]
+    module.add_class('UanMac', parent=root_module['ns3::Object'])
+    ## uan-mac-aloha.h: ns3::UanMacAloha [class]
+    module.add_class('UanMacAloha', parent=root_module['ns3::UanMac'])
+    ## uan-mac-cw.h: ns3::UanMacCw [class]
+    module.add_class('UanMacCw', parent=[root_module['ns3::UanMac'], root_module['ns3::UanPhyListener']])
+    ## uan-mac-rc.h: ns3::UanMacRc [class]
+    module.add_class('UanMacRc', parent=root_module['ns3::UanMac'])
+    ## uan-mac-rc.h: ns3::UanMacRc [enumeration]
+    module.add_enum('', ['TYPE_DATA', 'TYPE_GWPING', 'TYPE_RTS', 'TYPE_CTS', 'TYPE_ACK'], outer_class=root_module['ns3::UanMacRc'])
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw [class]
+    module.add_class('UanMacRcGw', parent=root_module['ns3::UanMac'])
+    ## uan-noise-model.h: ns3::UanNoiseModel [class]
+    module.add_class('UanNoiseModel', parent=root_module['ns3::Object'])
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault [class]
+    module.add_class('UanNoiseModelDefault', parent=root_module['ns3::UanNoiseModel'])
+    ## uan-phy.h: ns3::UanPhy [class]
+    module.add_class('UanPhy', parent=root_module['ns3::Object'])
+    ## uan-phy.h: ns3::UanPhy::State [enumeration]
+    module.add_enum('State', ['IDLE', 'CCABUSY', 'RX', 'TX', 'SLEEP'], outer_class=root_module['ns3::UanPhy'])
+    ## uan-phy.h: ns3::UanPhyCalcSinr [class]
+    module.add_class('UanPhyCalcSinr', parent=root_module['ns3::Object'])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault [class]
+    module.add_class('UanPhyCalcSinrDefault', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual [class]
+    module.add_class('UanPhyCalcSinrDual', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk [class]
+    module.add_class('UanPhyCalcSinrFhFsk', parent=root_module['ns3::UanPhyCalcSinr'])
+    ## uan-phy-dual.h: ns3::UanPhyDual [class]
+    module.add_class('UanPhyDual', parent=root_module['ns3::UanPhy'])
+    ## uan-phy-gen.h: ns3::UanPhyGen [class]
+    module.add_class('UanPhyGen', parent=root_module['ns3::UanPhy'])
+    ## uan-phy.h: ns3::UanPhyPer [class]
+    module.add_class('UanPhyPer', parent=root_module['ns3::Object'])
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault [class]
+    module.add_class('UanPhyPerGenDefault', parent=root_module['ns3::UanPhyPer'])
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem [class]
+    module.add_class('UanPhyPerUmodem', parent=root_module['ns3::UanPhyPer'])
+    ## uan-prop-model.h: ns3::UanPropModel [class]
+    module.add_class('UanPropModel', parent=root_module['ns3::Object'])
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal [class]
+    module.add_class('UanPropModelIdeal', parent=root_module['ns3::UanPropModel'])
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp [class]
+    module.add_class('UanPropModelThorp', parent=root_module['ns3::UanPropModel'])
+    ## uan-transducer.h: ns3::UanTransducer [class]
+    module.add_class('UanTransducer', parent=root_module['ns3::Object'])
+    ## uan-transducer.h: ns3::UanTransducer::State [enumeration]
+    module.add_enum('State', ['TX', 'RX'], outer_class=root_module['ns3::UanTransducer'])
+    ## uan-transducer-hd.h: ns3::UanTransducerHd [class]
+    module.add_class('UanTransducerHd', parent=root_module['ns3::UanTransducer'])
+    ## uan-channel.h: ns3::UanChannel [class]
+    module.add_class('UanChannel', parent=root_module['ns3::Channel'])
+    ## uan-tx-mode.h: ns3::UanModesListChecker [class]
+    module.add_class('UanModesListChecker', parent=root_module['ns3::AttributeChecker'])
+    ## uan-tx-mode.h: ns3::UanModesListValue [class]
+    module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
+    ## uan-net-device.h: ns3::UanNetDevice [class]
+    module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel [class]
+    module.add_class('AcousticModemEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
+    module.add_container('std::vector< ns3::Tap >', 'ns3::Tap', container_type='vector')
+    module.add_container('std::list< ns3::UanPacketArrival >', 'ns3::UanPacketArrival', container_type='list')
     
     ## Register a nested module for the namespace Config
     
@@ -95,10 +195,2683 @@
     
 
 def register_methods(root_module):
+    register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
+    register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
+    register_Ns3UanAddress_methods(root_module, root_module['ns3::UanAddress'])
+    register_Ns3UanHelper_methods(root_module, root_module['ns3::UanHelper'])
+    register_Ns3UanModesList_methods(root_module, root_module['ns3::UanModesList'])
+    register_Ns3UanPacketArrival_methods(root_module, root_module['ns3::UanPacketArrival'])
+    register_Ns3UanPdp_methods(root_module, root_module['ns3::UanPdp'])
+    register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
+    register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
+    register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
+    register_Ns3AcousticModemEnergyModelHelper_methods(root_module, root_module['ns3::AcousticModemEnergyModelHelper'])
+    register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
+    register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
+    register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
+    register_Ns3UanHeaderRcCtsGlobal_methods(root_module, root_module['ns3::UanHeaderRcCtsGlobal'])
+    register_Ns3UanHeaderRcData_methods(root_module, root_module['ns3::UanHeaderRcData'])
+    register_Ns3UanHeaderRcRts_methods(root_module, root_module['ns3::UanHeaderRcRts'])
+    register_Ns3UanMac_methods(root_module, root_module['ns3::UanMac'])
+    register_Ns3UanMacAloha_methods(root_module, root_module['ns3::UanMacAloha'])
+    register_Ns3UanMacCw_methods(root_module, root_module['ns3::UanMacCw'])
+    register_Ns3UanMacRc_methods(root_module, root_module['ns3::UanMacRc'])
+    register_Ns3UanMacRcGw_methods(root_module, root_module['ns3::UanMacRcGw'])
+    register_Ns3UanNoiseModel_methods(root_module, root_module['ns3::UanNoiseModel'])
+    register_Ns3UanNoiseModelDefault_methods(root_module, root_module['ns3::UanNoiseModelDefault'])
+    register_Ns3UanPhy_methods(root_module, root_module['ns3::UanPhy'])
+    register_Ns3UanPhyCalcSinr_methods(root_module, root_module['ns3::UanPhyCalcSinr'])
+    register_Ns3UanPhyCalcSinrDefault_methods(root_module, root_module['ns3::UanPhyCalcSinrDefault'])
+    register_Ns3UanPhyCalcSinrDual_methods(root_module, root_module['ns3::UanPhyCalcSinrDual'])
+    register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, root_module['ns3::UanPhyCalcSinrFhFsk'])
+    register_Ns3UanPhyDual_methods(root_module, root_module['ns3::UanPhyDual'])
+    register_Ns3UanPhyGen_methods(root_module, root_module['ns3::UanPhyGen'])
+    register_Ns3UanPhyPer_methods(root_module, root_module['ns3::UanPhyPer'])
+    register_Ns3UanPhyPerGenDefault_methods(root_module, root_module['ns3::UanPhyPerGenDefault'])
+    register_Ns3UanPhyPerUmodem_methods(root_module, root_module['ns3::UanPhyPerUmodem'])
+    register_Ns3UanPropModel_methods(root_module, root_module['ns3::UanPropModel'])
+    register_Ns3UanPropModelIdeal_methods(root_module, root_module['ns3::UanPropModelIdeal'])
+    register_Ns3UanPropModelThorp_methods(root_module, root_module['ns3::UanPropModelThorp'])
+    register_Ns3UanTransducer_methods(root_module, root_module['ns3::UanTransducer'])
+    register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
+    register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
+    register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
+    register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
+    register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
+    register_Ns3AcousticModemEnergyModel_methods(root_module, root_module['ns3::AcousticModemEnergyModel'])
+    return
+
+def register_Ns3Reservation_methods(root_module, cls):
+    ## uan-mac-rc.h: ns3::Reservation::Reservation(ns3::Reservation const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Reservation const &', 'arg0')])
+    ## uan-mac-rc.h: ns3::Reservation::Reservation() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc.h: ns3::Reservation::Reservation(std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > & list, uint8_t frameNo, uint32_t maxPkts=0) [constructor]
+    cls.add_constructor([param('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > &', 'list'), param('uint8_t', 'frameNo'), param('uint32_t', 'maxPkts', default_value='0')])
+    ## uan-mac-rc.h: void ns3::Reservation::AddTimestamp(ns3::Time t) [member function]
+    cls.add_method('AddTimestamp', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetLength() const [member function]
+    cls.add_method('GetLength', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetNoFrames() const [member function]
+    cls.add_method('GetNoFrames', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > const & ns3::Reservation::GetPktList() const [member function]
+    cls.add_method('GetPktList', 
+                   'std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > const &', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: ns3::Time ns3::Reservation::GetTimestamp(uint8_t n) const [member function]
+    cls.add_method('GetTimestamp', 
+                   'ns3::Time', 
+                   [param('uint8_t', 'n')], 
+                   is_const=True)
+    ## uan-mac-rc.h: void ns3::Reservation::IncrementRetry() [member function]
+    cls.add_method('IncrementRetry', 
+                   'void', 
+                   [])
+    ## uan-mac-rc.h: bool ns3::Reservation::IsTransmitted() const [member function]
+    cls.add_method('IsTransmitted', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## uan-mac-rc.h: void ns3::Reservation::SetFrameNo(uint8_t fn) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'fn')])
+    ## uan-mac-rc.h: void ns3::Reservation::SetTransmitted(bool t=true) [member function]
+    cls.add_method('SetTransmitted', 
+                   'void', 
+                   [param('bool', 't', default_value='true')])
+    return
+
+def register_Ns3Tap_methods(root_module, cls):
+    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Tap const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Tap const &', 'arg0')])
+    ## uan-prop-model.h: ns3::Tap::Tap() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Time delay, std::complex<double> amp) [constructor]
+    cls.add_constructor([param('ns3::Time', 'delay'), param('std::complex< double >', 'amp')])
+    ## uan-prop-model.h: std::complex<double> ns3::Tap::GetAmp() const [member function]
+    cls.add_method('GetAmp', 
+                   'std::complex< double >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Time ns3::Tap::GetDelay() const [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanAddress_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    cls.add_binary_comparison_operator('<')
+    ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
+    ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
+    cls.add_constructor([])
+    ## uan-address.h: ns3::UanAddress::UanAddress(uint8_t addr) [constructor]
+    cls.add_constructor([param('uint8_t', 'addr')])
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::Allocate() [member function]
+    cls.add_method('Allocate', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_static=True)
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::ConvertFrom(ns3::Address const & address) [member function]
+    cls.add_method('ConvertFrom', 
+                   'ns3::UanAddress', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_static=True)
+    ## uan-address.h: void ns3::UanAddress::CopyFrom(uint8_t const * pBuffer) [member function]
+    cls.add_method('CopyFrom', 
+                   'void', 
+                   [param('uint8_t const *', 'pBuffer')])
+    ## uan-address.h: void ns3::UanAddress::CopyTo(uint8_t * pBuffer) [member function]
+    cls.add_method('CopyTo', 
+                   'void', 
+                   [param('uint8_t *', 'pBuffer')])
+    ## uan-address.h: uint8_t ns3::UanAddress::GetAsInt() const [member function]
+    cls.add_method('GetAsInt', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::GetBroadcast() [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_static=True)
+    ## uan-address.h: static bool ns3::UanAddress::IsMatchingType(ns3::Address const & address) [member function]
+    cls.add_method('IsMatchingType', 
+                   'bool', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_static=True)
+    return
+
+def register_Ns3UanHelper_methods(root_module, cls):
+    ## uan-helper.h: ns3::UanHelper::UanHelper(ns3::UanHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHelper const &', 'arg0')])
+    ## uan-helper.h: ns3::UanHelper::UanHelper() [constructor]
+    cls.add_constructor([])
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NetDeviceContainer d) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('ns3::NetDeviceContainer', 'd')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NodeContainer n) [member function]
+    cls.add_method('EnableAscii', 
+                   'void', 
+                   [param('std::ostream &', 'os'), param('ns3::NodeContainer', 'n')], 
+                   is_static=True)
+    ## uan-helper.h: static void ns3::UanHelper::EnableAsciiAll(std::ostream & os) [member function]
+    cls.add_method('EnableAsciiAll', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c')], 
+                   is_const=True)
+    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c, ns3::Ptr<ns3::UanChannel> channel) const [member function]
+    cls.add_method('Install', 
+                   'ns3::NetDeviceContainer', 
+                   [param('ns3::NodeContainer', 'c'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_const=True)
+    ## uan-helper.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanHelper::Install(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::UanChannel> channel) const [member function]
+    cls.add_method('Install', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_const=True)
+    ## uan-helper.h: void ns3::UanHelper::SetMac(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## uan-helper.h: void ns3::UanHelper::SetPhy(std::string phyType, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('std::string', 'phyType'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    ## uan-helper.h: void ns3::UanHelper::SetTransducer(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
+    return
+
+def register_Ns3UanModesList_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-tx-mode.h: ns3::UanModesList::UanModesList(ns3::UanModesList const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesList const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanModesList::UanModesList() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: void ns3::UanModesList::AppendMode(ns3::UanTxMode mode) [member function]
+    cls.add_method('AppendMode', 
+                   'void', 
+                   [param('ns3::UanTxMode', 'mode')])
+    ## uan-tx-mode.h: void ns3::UanModesList::DeleteMode(uint32_t num) [member function]
+    cls.add_method('DeleteMode', 
+                   'void', 
+                   [param('uint32_t', 'num')])
+    ## uan-tx-mode.h: uint32_t ns3::UanModesList::GetNModes() const [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPacketArrival_methods(root_module, cls):
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::UanPacketArrival const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPacketArrival const &', 'arg0')])
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp, ns3::Time arrTime) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp'), param('ns3::Time', 'arrTime')])
+    ## uan-transducer.h: ns3::Time ns3::UanPacketArrival::GetArrivalTime() const [member function]
+    cls.add_method('GetArrivalTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::Ptr<ns3::Packet> ns3::UanPacketArrival::GetPacket() const [member function]
+    cls.add_method('GetPacket', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::UanPdp ns3::UanPacketArrival::GetPdp() const [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: double ns3::UanPacketArrival::GetRxPowerDb() const [member function]
+    cls.add_method('GetRxPowerDb', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-transducer.h: ns3::UanTxMode const & ns3::UanPacketArrival::GetTxMode() const [member function]
+    cls.add_method('GetTxMode', 
+                   'ns3::UanTxMode const &', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPdp_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(ns3::UanPdp const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPdp const &', 'arg0')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<ns3::Tap, std::allocator<ns3::Tap> > taps, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< ns3::Tap >', 'taps'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<std::complex<double>,std::allocator<std::complex<double> > > arrivals, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< std::complex< double > >', 'arrivals'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<double, std::allocator<double> > arrivals, ns3::Time resolution) [constructor]
+    cls.add_constructor([param('std::vector< double >', 'arrivals'), param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: static ns3::UanPdp ns3::UanPdp::CreateImpulsePdp() [member function]
+    cls.add_method('CreateImpulsePdp', 
+                   'ns3::UanPdp', 
+                   [], 
+                   is_static=True)
+    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetBegin() const [member function]
+    cls.add_method('GetBegin', 
+                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetEnd() const [member function]
+    cls.add_method('GetEnd', 
+                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: uint32_t ns3::UanPdp::GetNTaps() const [member function]
+    cls.add_method('GetNTaps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Time ns3::UanPdp::GetResolution() const [member function]
+    cls.add_method('GetResolution', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-prop-model.h: ns3::Tap const & ns3::UanPdp::GetTap(uint32_t i) const [member function]
+    cls.add_method('GetTap', 
+                   'ns3::Tap const &', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## uan-prop-model.h: void ns3::UanPdp::SetNTaps(uint32_t nTaps) [member function]
+    cls.add_method('SetNTaps', 
+                   'void', 
+                   [param('uint32_t', 'nTaps')])
+    ## uan-prop-model.h: void ns3::UanPdp::SetResolution(ns3::Time resolution) [member function]
+    cls.add_method('SetResolution', 
+                   'void', 
+                   [param('ns3::Time', 'resolution')])
+    ## uan-prop-model.h: void ns3::UanPdp::SetTap(std::complex<double> arrival, uint32_t index) [member function]
+    cls.add_method('SetTap', 
+                   'void', 
+                   [param('std::complex< double >', 'arrival'), param('uint32_t', 'index')])
+    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsC(ns3::Time begin, ns3::Time end) const [member function]
+    cls.add_method('SumTapsC', 
+                   'std::complex< double >', 
+                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
+                   is_const=True)
+    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsFromMaxC(ns3::Time delay, ns3::Time duration) const [member function]
+    cls.add_method('SumTapsFromMaxC', 
+                   'std::complex< double >', 
+                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
+                   is_const=True)
+    ## uan-prop-model.h: double ns3::UanPdp::SumTapsFromMaxNc(ns3::Time delay, ns3::Time duration) const [member function]
+    cls.add_method('SumTapsFromMaxNc', 
+                   'double', 
+                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
+                   is_const=True)
+    ## uan-prop-model.h: double ns3::UanPdp::SumTapsNc(ns3::Time begin, ns3::Time end) const [member function]
+    cls.add_method('SumTapsNc', 
+                   'double', 
+                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPhyListener_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener(ns3::UanPhyListener const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyListener const &', 'arg0')])
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaEnd() [member function]
+    cls.add_method('NotifyCcaEnd', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaStart() [member function]
+    cls.add_method('NotifyCcaStart', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxStart() [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyListener::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanTxMode_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode(ns3::UanTxMode const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTxMode const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetBandwidthHz() const [member function]
+    cls.add_method('GetBandwidthHz', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetCenterFreqHz() const [member function]
+    cls.add_method('GetCenterFreqHz', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetConstellationSize() const [member function]
+    cls.add_method('GetConstellationSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetDataRateBps() const [member function]
+    cls.add_method('GetDataRateBps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType ns3::UanTxMode::GetModType() const [member function]
+    cls.add_method('GetModType', 
+                   'ns3::UanTxMode::ModulationType', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: std::string ns3::UanTxMode::GetName() const [member function]
+    cls.add_method('GetName', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetPhyRateSps() const [member function]
+    cls.add_method('GetPhyRateSps', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetUid() const [member function]
+    cls.add_method('GetUid', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    return
+
+def register_Ns3UanTxModeFactory_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory(ns3::UanTxModeFactory const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTxModeFactory const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::CreateMode(ns3::UanTxMode::ModulationType type, uint32_t dataRateBps, uint32_t phyRateSps, uint32_t cfHz, uint32_t bwHz, uint32_t constSize, std::string name) [member function]
+    cls.add_method('CreateMode', 
+                   'ns3::UanTxMode', 
+                   [param('ns3::UanTxMode::ModulationType', 'type'), param('uint32_t', 'dataRateBps'), param('uint32_t', 'phyRateSps'), param('uint32_t', 'cfHz'), param('uint32_t', 'bwHz'), param('uint32_t', 'constSize'), param('std::string', 'name')], 
+                   is_static=True)
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(std::string name) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('std::string', 'name')], 
+                   is_static=True)
+    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(uint32_t uid) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'uid')], 
+                   is_static=True)
+    return
+
+def register_Ns3AcousticModemEnergyModelHelper_methods(root_module, cls):
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper(ns3::AcousticModemEnergyModelHelper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AcousticModemEnergyModelHelper const &', 'arg0')])
+    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper() [constructor]
+    cls.add_constructor([])
+    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## acoustic-modem-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::AcousticModemEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
+    cls.add_method('DoInstall', 
+                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_const=True, visibility='private', is_virtual=True)
+    return
+
+def register_Ns3UanHeaderCommon_methods(root_module, cls):
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanHeaderCommon const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderCommon const &', 'arg0')])
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon() [constructor]
+    cls.add_constructor([])
+    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanAddress const src, ns3::UanAddress const dest, uint8_t type) [constructor]
+    cls.add_constructor([param('ns3::UanAddress const', 'src'), param('ns3::UanAddress const', 'dest'), param('uint8_t', 'type')])
+    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetDest() const [member function]
+    cls.add_method('GetDest', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: ns3::TypeId ns3::UanHeaderCommon::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetSrc() const [member function]
+    cls.add_method('GetSrc', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: uint8_t ns3::UanHeaderCommon::GetType() const [member function]
+    cls.add_method('GetType', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-common.h: static ns3::TypeId ns3::UanHeaderCommon::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetDest(ns3::UanAddress dest) [member function]
+    cls.add_method('SetDest', 
+                   'void', 
+                   [param('ns3::UanAddress', 'dest')])
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetSrc(ns3::UanAddress src) [member function]
+    cls.add_method('SetSrc', 
+                   'void', 
+                   [param('ns3::UanAddress', 'src')])
+    ## uan-header-common.h: void ns3::UanHeaderCommon::SetType(uint8_t type) [member function]
+    cls.add_method('SetType', 
+                   'void', 
+                   [param('uint8_t', 'type')])
+    return
+
+def register_Ns3UanHeaderRcAck_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck(ns3::UanHeaderRcAck const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcAck const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::AddNackedFrame(uint8_t frame) [member function]
+    cls.add_method('AddNackedFrame', 
+                   'void', 
+                   [param('uint8_t', 'frame')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcAck::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: std::set<unsigned char, std::less<unsigned char>, std::allocator<unsigned char> > const & ns3::UanHeaderRcAck::GetNackedFrames() const [member function]
+    cls.add_method('GetNackedFrames', 
+                   'std::set< unsigned char > const &', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetNoNacks() const [member function]
+    cls.add_method('GetNoNacks', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcAck::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcAck::SetFrameNo(uint8_t frameNo) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNo')])
+    return
+
+def register_Ns3UanHeaderRcCts_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(ns3::UanHeaderRcCts const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcCts const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(uint8_t frameNo, uint8_t retryNo, ns3::Time rtsTs, ns3::Time delay, ns3::UanAddress addr) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('ns3::Time', 'rtsTs'), param('ns3::Time', 'delay'), param('ns3::UanAddress', 'addr')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: ns3::UanAddress ns3::UanHeaderRcCts::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::UanAddress', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetDelayToTx() const [member function]
+    cls.add_method('GetDelayToTx', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCts::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetRtsTimeStamp() const [member function]
+    cls.add_method('GetRtsTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCts::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetDelayToTx(ns3::Time delay) [member function]
+    cls.add_method('SetDelayToTx', 
+                   'void', 
+                   [param('ns3::Time', 'delay')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetFrameNo(uint8_t frameNo) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNo')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRetryNo(uint8_t no) [member function]
+    cls.add_method('SetRetryNo', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRtsTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetRtsTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    return
+
+def register_Ns3UanHeaderRcCtsGlobal_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::UanHeaderRcCtsGlobal const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcCtsGlobal const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::Time wt, ns3::Time ts, uint16_t rate, uint16_t retryRate) [constructor]
+    cls.add_constructor([param('ns3::Time', 'wt'), param('ns3::Time', 'ts'), param('uint16_t', 'rate'), param('uint16_t', 'retryRate')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRateNum() const [member function]
+    cls.add_method('GetRateNum', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRetryRate() const [member function]
+    cls.add_method('GetRetryRate', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp() const [member function]
+    cls.add_method('GetTxTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetWindowTime() const [member function]
+    cls.add_method('GetWindowTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRateNum(uint16_t rate) [member function]
+    cls.add_method('SetRateNum', 
+                   'void', 
+                   [param('uint16_t', 'rate')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRetryRate(uint16_t rate) [member function]
+    cls.add_method('SetRetryRate', 
+                   'void', 
+                   [param('uint16_t', 'rate')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetTxTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetWindowTime(ns3::Time t) [member function]
+    cls.add_method('SetWindowTime', 
+                   'void', 
+                   [param('ns3::Time', 't')])
+    return
+
+def register_Ns3UanHeaderRcData_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(ns3::UanHeaderRcData const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcData const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(uint8_t frameNum, ns3::Time propDelay) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNum'), param('ns3::Time', 'propDelay')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcData::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcData::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcData::GetPropDelay() const [member function]
+    cls.add_method('GetPropDelay', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcData::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetFrameNo(uint8_t frameNum) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'frameNum')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetPropDelay(ns3::Time propDelay) [member function]
+    cls.add_method('SetPropDelay', 
+                   'void', 
+                   [param('ns3::Time', 'propDelay')])
+    return
+
+def register_Ns3UanHeaderRcRts_methods(root_module, cls):
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(ns3::UanHeaderRcRts const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanHeaderRcRts const &', 'arg0')])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts() [constructor]
+    cls.add_constructor([])
+    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length, ns3::Time ts) [constructor]
+    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('uint8_t', 'noFrames'), param('uint16_t', 'length'), param('ns3::Time', 'ts')])
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetFrameNo() const [member function]
+    cls.add_method('GetFrameNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcRts::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcRts::GetLength() const [member function]
+    cls.add_method('GetLength', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetNoFrames() const [member function]
+    cls.add_method('GetNoFrames', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetRetryNo() const [member function]
+    cls.add_method('GetRetryNo', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcRts::GetTimeStamp() const [member function]
+    cls.add_method('GetTimeStamp', 
+                   'ns3::Time', 
+                   [], 
+                   is_const=True)
+    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcRts::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetFrameNo(uint8_t fno) [member function]
+    cls.add_method('SetFrameNo', 
+                   'void', 
+                   [param('uint8_t', 'fno')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetLength(uint16_t length) [member function]
+    cls.add_method('SetLength', 
+                   'void', 
+                   [param('uint16_t', 'length')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetNoFrames(uint8_t no) [member function]
+    cls.add_method('SetNoFrames', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetRetryNo(uint8_t no) [member function]
+    cls.add_method('SetRetryNo', 
+                   'void', 
+                   [param('uint8_t', 'no')])
+    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetTimeStamp(ns3::Time timeStamp) [member function]
+    cls.add_method('SetTimeStamp', 
+                   'void', 
+                   [param('ns3::Time', 'timeStamp')])
+    return
+
+def register_Ns3UanMac_methods(root_module, cls):
+    ## uan-mac.h: ns3::UanMac::UanMac() [constructor]
+    cls.add_constructor([])
+    ## uan-mac.h: ns3::UanMac::UanMac(ns3::UanMac const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMac const &', 'arg0')])
+    ## uan-mac.h: void ns3::UanMac::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: bool ns3::UanMac::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: ns3::Address ns3::UanMac::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: ns3::Address ns3::UanMac::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-mac.h: void ns3::UanMac::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanMacAloha_methods(root_module, cls):
+    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha(ns3::UanMacAloha const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacAloha const &', 'arg0')])
+    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: bool ns3::UanMacAloha::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-aloha.h: static ns3::TypeId ns3::UanMacAloha::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-aloha.h: void ns3::UanMacAloha::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacCw_methods(root_module, cls):
+    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw(ns3::UanMacCw const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacCw const &', 'arg0')])
+    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-cw.h: void ns3::UanMacCw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: bool ns3::UanMacCw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-cw.h: uint32_t ns3::UanMacCw::GetCw() [member function]
+    cls.add_method('GetCw', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: ns3::Time ns3::UanMacCw::GetSlotTime() [member function]
+    cls.add_method('GetSlotTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: static ns3::TypeId ns3::UanMacCw::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaEnd() [member function]
+    cls.add_method('NotifyCcaEnd', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaStart() [member function]
+    cls.add_method('NotifyCcaStart', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndError() [member function]
+    cls.add_method('NotifyRxEndError', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndOk() [member function]
+    cls.add_method('NotifyRxEndOk', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxStart() [member function]
+    cls.add_method('NotifyRxStart', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyTxStart(ns3::Time duration) [member function]
+    cls.add_method('NotifyTxStart', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetCw(uint32_t cw) [member function]
+    cls.add_method('SetCw', 
+                   'void', 
+                   [param('uint32_t', 'cw')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::SetSlotTime(ns3::Time duration) [member function]
+    cls.add_method('SetSlotTime', 
+                   'void', 
+                   [param('ns3::Time', 'duration')], 
+                   is_virtual=True)
+    ## uan-mac-cw.h: void ns3::UanMacCw::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacRc_methods(root_module, cls):
+    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc(ns3::UanMacRc const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacRc const &', 'arg0')])
+    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc.h: void ns3::UanMacRc::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: bool ns3::UanMacRc::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-rc.h: static ns3::TypeId ns3::UanMacRc::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-rc.h: void ns3::UanMacRc::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanMacRcGw_methods(root_module, cls):
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw(ns3::UanMacRcGw const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanMacRcGw const &', 'arg0')])
+    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw() [constructor]
+    cls.add_constructor([])
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AttachPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: bool ns3::UanMacRcGw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Enqueue', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetAddress() [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-mac-rc-gw.h: static ns3::TypeId ns3::UanMacRcGw::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetAddress(ns3::UanAddress addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::UanAddress', 'addr')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetForwardUpCb', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanNoiseModel_methods(root_module, cls):
+    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel() [constructor]
+    cls.add_constructor([])
+    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel(ns3::UanNoiseModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNoiseModel const &', 'arg0')])
+    ## uan-noise-model.h: void ns3::UanNoiseModel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-noise-model.h: void ns3::UanNoiseModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-noise-model.h: double ns3::UanNoiseModel::GetNoiseDbHz(double fKhz) const [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    return
+
+def register_Ns3UanNoiseModelDefault_methods(root_module, cls):
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault(ns3::UanNoiseModelDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNoiseModelDefault const &', 'arg0')])
+    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-noise-model-default.h: double ns3::UanNoiseModelDefault::GetNoiseDbHz(double fKhz) const [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')], 
+                   is_const=True, is_virtual=True)
+    ## uan-noise-model-default.h: static ns3::TypeId ns3::UanNoiseModelDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhy_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhy::UanPhy() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhy::UanPhy(ns3::UanPhy const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhy const &', 'arg0')])
+    ## uan-phy.h: void ns3::UanPhy::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhy::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhy::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::UanTxMode ns3::UanPhy::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: uint32_t ns3::UanPhy::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::Packet> ns3::UanPhy::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhy::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhy::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: bool ns3::UanPhy::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhy::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanPhyCalcSinr_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr(ns3::UanPhyCalcSinr const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinr const &', 'arg0')])
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyCalcSinr::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::DbToKp(double db) const [member function]
+    cls.add_method('DbToKp', 
+                   'double', 
+                   [param('double', 'db')], 
+                   is_const=True)
+    ## uan-phy.h: void ns3::UanPhyCalcSinr::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: double ns3::UanPhyCalcSinr::KpToDb(double kp) const [member function]
+    cls.add_method('KpToDb', 
+                   'double', 
+                   [param('double', 'kp')], 
+                   is_const=True)
+    return
+
+def register_Ns3UanPhyCalcSinrDefault_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault(ns3::UanPhyCalcSinrDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrDefault const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrDefault::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyCalcSinrDual_methods(root_module, cls):
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual(ns3::UanPhyCalcSinrDual const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrDual const &', 'arg0')])
+    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-dual.h: double ns3::UanPhyCalcSinrDual::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyCalcSinrDual::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk(ns3::UanPhyCalcSinrFhFsk const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyCalcSinrFhFsk const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrFhFsk::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
+    cls.add_method('CalcSinrDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrFhFsk::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyDual_methods(root_module, cls):
+    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual(ns3::UanPhyDual const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyDual const &', 'arg0')])
+    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy1() const [member function]
+    cls.add_method('GetCcaThresholdPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy2() const [member function]
+    cls.add_method('GetCcaThresholdPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyDual::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyDual::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::UanTxMode ns3::UanPhyDual::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy1() const [member function]
+    cls.add_method('GetModesPhy1', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy2() const [member function]
+    cls.add_method('GetModesPhy2', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: uint32_t ns3::UanPhyDual::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy1() const [member function]
+    cls.add_method('GetPerModelPhy1', 
+                   'ns3::Ptr< ns3::UanPhyPer >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy2() const [member function]
+    cls.add_method('GetPerModelPhy2', 
+                   'ns3::Ptr< ns3::UanPhyPer >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy1PacketRx() const [member function]
+    cls.add_method('GetPhy1PacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy2PacketRx() const [member function]
+    cls.add_method('GetPhy2PacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy1() const [member function]
+    cls.add_method('GetRxGainDbPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy2() const [member function]
+    cls.add_method('GetRxGainDbPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy1() const [member function]
+    cls.add_method('GetSinrModelPhy1', 
+                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy2() const [member function]
+    cls.add_method('GetSinrModelPhy2', 
+                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyDual::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy1() const [member function]
+    cls.add_method('GetTxPowerDbPhy1', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy2() const [member function]
+    cls.add_method('GetTxPowerDbPhy2', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyDual::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Idle() [member function]
+    cls.add_method('IsPhy1Idle', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Rx() [member function]
+    cls.add_method('IsPhy1Rx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Tx() [member function]
+    cls.add_method('IsPhy1Tx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Idle() [member function]
+    cls.add_method('IsPhy2Idle', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Rx() [member function]
+    cls.add_method('IsPhy2Rx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Tx() [member function]
+    cls.add_method('IsPhy2Tx', 
+                   'bool', 
+                   [])
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy1(double thresh) [member function]
+    cls.add_method('SetCcaThresholdPhy1', 
+                   'void', 
+                   [param('double', 'thresh')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy2(double thresh) [member function]
+    cls.add_method('SetCcaThresholdPhy2', 
+                   'void', 
+                   [param('double', 'thresh')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy1(ns3::UanModesList modes) [member function]
+    cls.add_method('SetModesPhy1', 
+                   'void', 
+                   [param('ns3::UanModesList', 'modes')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy2(ns3::UanModesList modes) [member function]
+    cls.add_method('SetModesPhy2', 
+                   'void', 
+                   [param('ns3::UanModesList', 'modes')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy1(ns3::Ptr<ns3::UanPhyPer> per) [member function]
+    cls.add_method('SetPerModelPhy1', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy2(ns3::Ptr<ns3::UanPhyPer> per) [member function]
+    cls.add_method('SetPerModelPhy2', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy1(double gain) [member function]
+    cls.add_method('SetRxGainDbPhy1', 
+                   'void', 
+                   [param('double', 'gain')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy2(double gain) [member function]
+    cls.add_method('SetRxGainDbPhy2', 
+                   'void', 
+                   [param('double', 'gain')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy1(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
+    cls.add_method('SetSinrModelPhy1', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy2(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
+    cls.add_method('SetSinrModelPhy2', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy1(double arg0) [member function]
+    cls.add_method('SetTxPowerDbPhy1', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy2(double arg0) [member function]
+    cls.add_method('SetTxPowerDbPhy2', 
+                   'void', 
+                   [param('double', 'arg0')])
+    ## uan-phy-dual.h: void ns3::UanPhyDual::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-phy-dual.h: void ns3::UanPhyDual::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanPhyGen_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen(ns3::UanPhyGen const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyGen const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: void ns3::UanPhyGen::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::EnergyDepletionHandler() [member function]
+    cls.add_method('EnergyDepletionHandler', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetCcaThresholdDb() [member function]
+    cls.add_method('GetCcaThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyGen::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: static ns3::UanModesList ns3::UanPhyGen::GetDefaultModes() [member function]
+    cls.add_method('GetDefaultModes', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyGen::GetDevice() [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::UanNetDevice >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::UanTxMode ns3::UanPhyGen::GetMode(uint32_t n) [member function]
+    cls.add_method('GetMode', 
+                   'ns3::UanTxMode', 
+                   [param('uint32_t', 'n')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: uint32_t ns3::UanPhyGen::GetNModes() [member function]
+    cls.add_method('GetNModes', 
+                   'uint32_t', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::Packet> ns3::UanPhyGen::GetPacketRx() const [member function]
+    cls.add_method('GetPacketRx', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxGainDb() [member function]
+    cls.add_method('GetRxGainDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxThresholdDb() [member function]
+    cls.add_method('GetRxThresholdDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyGen::GetTransducer() [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: double ns3::UanPhyGen::GetTxPowerDb() [member function]
+    cls.add_method('GetTxPowerDb', 
+                   'double', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyGen::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateBusy() [member function]
+    cls.add_method('IsStateBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateCcaBusy() [member function]
+    cls.add_method('IsStateCcaBusy', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateIdle() [member function]
+    cls.add_method('IsStateIdle', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateRx() [member function]
+    cls.add_method('IsStateRx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateSleep() [member function]
+    cls.add_method('IsStateSleep', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateTx() [member function]
+    cls.add_method('IsStateTx', 
+                   'bool', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyIntChange() [member function]
+    cls.add_method('NotifyIntChange', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('NotifyTransStartTx', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::RegisterListener(ns3::UanPhyListener * listener) [member function]
+    cls.add_method('RegisterListener', 
+                   'void', 
+                   [param('ns3::UanPhyListener *', 'listener')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
+    cls.add_method('SendPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetCcaThresholdDb(double thresh) [member function]
+    cls.add_method('SetCcaThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
+    cls.add_method('SetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetEnergyModelCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveErrorCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
+    cls.add_method('SetReceiveOkCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxGainDb(double gain) [member function]
+    cls.add_method('SetRxGainDb', 
+                   'void', 
+                   [param('double', 'gain')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxThresholdDb(double thresh) [member function]
+    cls.add_method('SetRxThresholdDb', 
+                   'void', 
+                   [param('double', 'thresh')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTxPowerDb(double txpwr) [member function]
+    cls.add_method('SetTxPowerDb', 
+                   'void', 
+                   [param('double', 'txpwr')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('StartRxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: void ns3::UanPhyGen::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanPhyPer_methods(root_module, cls):
+    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer() [constructor]
+    cls.add_constructor([])
+    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer(ns3::UanPhyPer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPer const &', 'arg0')])
+    ## uan-phy.h: double ns3::UanPhyPer::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyPer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-phy.h: void ns3::UanPhyPer::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    return
+
+def register_Ns3UanPhyPerGenDefault_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault(ns3::UanPhyPerGenDefault const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPerGenDefault const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyPerGenDefault::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerGenDefault::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPhyPerUmodem_methods(root_module, cls):
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem(ns3::UanPhyPerUmodem const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPhyPerUmodem const &', 'arg0')])
+    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem() [constructor]
+    cls.add_constructor([])
+    ## uan-phy-gen.h: double ns3::UanPhyPerUmodem::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
+    cls.add_method('CalcPer', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerUmodem::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPropModel_methods(root_module, cls):
+    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel(ns3::UanPropModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModel const &', 'arg0')])
+    ## uan-prop-model.h: void ns3::UanPropModel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-prop-model.h: void ns3::UanPropModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-prop-model.h: ns3::Time ns3::UanPropModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-prop-model.h: double ns3::UanPropModel::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode txMode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-prop-model.h: ns3::UanPdp ns3::UanPropModel::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanPropModelIdeal_methods(root_module, cls):
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal(ns3::UanPropModelIdeal const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModelIdeal const &', 'arg0')])
+    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model-ideal.h: ns3::Time ns3::UanPropModelIdeal::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: double ns3::UanPropModelIdeal::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: ns3::UanPdp ns3::UanPropModelIdeal::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-ideal.h: static ns3::TypeId ns3::UanPropModelIdeal::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanPropModelThorp_methods(root_module, cls):
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp(ns3::UanPropModelThorp const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanPropModelThorp const &', 'arg0')])
+    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp() [constructor]
+    cls.add_constructor([])
+    ## uan-prop-model-thorp.h: ns3::Time ns3::UanPropModelThorp::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetDelay', 
+                   'ns3::Time', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: double ns3::UanPropModelThorp::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPathLossDb', 
+                   'double', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: ns3::UanPdp ns3::UanPropModelThorp::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
+    cls.add_method('GetPdp', 
+                   'ns3::UanPdp', 
+                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
+                   is_virtual=True)
+    ## uan-prop-model-thorp.h: static ns3::TypeId ns3::UanPropModelThorp::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3UanTransducer_methods(root_module, cls):
+    ## uan-transducer.h: ns3::UanTransducer::UanTransducer() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer.h: ns3::UanTransducer::UanTransducer(ns3::UanTransducer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTransducer const &', 'arg0')])
+    ## uan-transducer.h: void ns3::UanTransducer::AddPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('AddPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducer::GetArrivalList() const [member function]
+    cls.add_method('GetArrivalList', 
+                   'std::list< ns3::UanPacketArrival > const &', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducer::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducer::GetPhyList() const [member function]
+    cls.add_method('GetPhyList', 
+                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: ns3::UanTransducer::State ns3::UanTransducer::GetState() const [member function]
+    cls.add_method('GetState', 
+                   'ns3::UanTransducer::State', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: bool ns3::UanTransducer::IsRx() const [member function]
+    cls.add_method('IsRx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: bool ns3::UanTransducer::IsTx() const [member function]
+    cls.add_method('IsTx', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## uan-transducer.h: void ns3::UanTransducer::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('Transmit', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3UanTransducerHd_methods(root_module, cls):
+    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd(ns3::UanTransducerHd const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanTransducerHd const &', 'arg0')])
+    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd() [constructor]
+    cls.add_constructor([])
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::AddPhy(ns3::Ptr<ns3::UanPhy> arg0) [member function]
+    cls.add_method('AddPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'arg0')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducerHd::GetArrivalList() const [member function]
+    cls.add_method('GetArrivalList', 
+                   'std::list< ns3::UanPacketArrival > const &', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducerHd::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::UanChannel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducerHd::GetPhyList() const [member function]
+    cls.add_method('GetPhyList', 
+                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: ns3::UanTransducer::State ns3::UanTransducerHd::GetState() const [member function]
+    cls.add_method('GetState', 
+                   'ns3::UanTransducer::State', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: static ns3::TypeId ns3::UanTransducerHd::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsRx() const [member function]
+    cls.add_method('IsRx', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsTx() const [member function]
+    cls.add_method('IsTx', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
+    cls.add_method('Transmit', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
+                   is_virtual=True)
+    ## uan-transducer-hd.h: void ns3::UanTransducerHd::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanChannel_methods(root_module, cls):
+    ## uan-channel.h: ns3::UanChannel::UanChannel(ns3::UanChannel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanChannel const &', 'arg0')])
+    ## uan-channel.h: ns3::UanChannel::UanChannel() [constructor]
+    cls.add_constructor([])
+    ## uan-channel.h: void ns3::UanChannel::AddDevice(ns3::Ptr<ns3::UanNetDevice> dev, ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('AddDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNetDevice >', 'dev'), param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
+    ## uan-channel.h: void ns3::UanChannel::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## uan-channel.h: ns3::Ptr<ns3::NetDevice> ns3::UanChannel::GetDevice(uint32_t i) const [member function]
+    cls.add_method('GetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## uan-channel.h: uint32_t ns3::UanChannel::GetNDevices() const [member function]
+    cls.add_method('GetNDevices', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-channel.h: double ns3::UanChannel::GetNoiseDbHz(double fKhz) [member function]
+    cls.add_method('GetNoiseDbHz', 
+                   'double', 
+                   [param('double', 'fKhz')])
+    ## uan-channel.h: static ns3::TypeId ns3::UanChannel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-channel.h: void ns3::UanChannel::SetNoiseModel(ns3::Ptr<ns3::UanNoiseModel> noise) [member function]
+    cls.add_method('SetNoiseModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanNoiseModel >', 'noise')])
+    ## uan-channel.h: void ns3::UanChannel::SetPropagationModel(ns3::Ptr<ns3::UanPropModel> prop) [member function]
+    cls.add_method('SetPropagationModel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPropModel >', 'prop')])
+    ## uan-channel.h: void ns3::UanChannel::TxPacket(ns3::Ptr<ns3::UanTransducer> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txmode) [member function]
+    cls.add_method('TxPacket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txmode')])
+    ## uan-channel.h: void ns3::UanChannel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    return
+
+def register_Ns3UanModesListChecker_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker(ns3::UanModesListChecker const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesListChecker const &', 'arg0')])
+    return
+
+def register_Ns3UanModesListValue_methods(root_module, cls):
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue() [constructor]
+    cls.add_constructor([])
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesListValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanModesListValue const &', 'arg0')])
+    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesList const & value) [constructor]
+    cls.add_constructor([param('ns3::UanModesList const &', 'value')])
+    ## uan-tx-mode.h: ns3::Ptr<ns3::AttributeValue> ns3::UanModesListValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::AttributeValue >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-tx-mode.h: bool ns3::UanModesListValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+    cls.add_method('DeserializeFromString', 
+                   'bool', 
+                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_virtual=True)
+    ## uan-tx-mode.h: ns3::UanModesList ns3::UanModesListValue::Get() const [member function]
+    cls.add_method('Get', 
+                   'ns3::UanModesList', 
+                   [], 
+                   is_const=True)
+    ## uan-tx-mode.h: std::string ns3::UanModesListValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+    cls.add_method('SerializeToString', 
+                   'std::string', 
+                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_const=True, is_virtual=True)
+    ## uan-tx-mode.h: void ns3::UanModesListValue::Set(ns3::UanModesList const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('ns3::UanModesList const &', 'value')])
+    return
+
+def register_Ns3UanNetDevice_methods(root_module, cls):
+    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice(ns3::UanNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::UanNetDevice const &', 'arg0')])
+    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice() [constructor]
+    cls.add_constructor([])
+    ## uan-net-device.h: void ns3::UanNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::Clear() [member function]
+    cls.add_method('Clear', 
+                   'void', 
+                   [])
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::Channel> ns3::UanNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: uint32_t ns3::UanNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanMac> ns3::UanNetDevice::GetMac() const [member function]
+    cls.add_method('GetMac', 
+                   'ns3::Ptr< ns3::UanMac >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: uint16_t ns3::UanNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::Node> ns3::UanNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanPhy> ns3::UanNetDevice::GetPhy() const [member function]
+    cls.add_method('GetPhy', 
+                   'ns3::Ptr< ns3::UanPhy >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: ns3::Ptr<ns3::UanTransducer> ns3::UanNetDevice::GetTransducer() const [member function]
+    cls.add_method('GetTransducer', 
+                   'ns3::Ptr< ns3::UanTransducer >', 
+                   [], 
+                   is_const=True)
+    ## uan-net-device.h: static ns3::TypeId ns3::UanNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-net-device.h: bool ns3::UanNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
+    cls.add_method('SetChannel', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')])
+    ## uan-net-device.h: void ns3::UanNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
+    cls.add_method('SetMac', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanMac >', 'mac')])
+    ## uan-net-device.h: bool ns3::UanNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
+    cls.add_method('SetPhy', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')])
+    ## uan-net-device.h: void ns3::UanNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
+    cls.add_method('SetTransducer', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
+    ## uan-net-device.h: bool ns3::UanNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## uan-net-device.h: void ns3::UanNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> pkt, ns3::UanAddress const & src) [member function]
+    cls.add_method('ForwardUp', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::UanAddress const &', 'src')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3AcousticModemEnergyModel_methods(root_module, cls):
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel(ns3::AcousticModemEnergyModel const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::AcousticModemEnergyModel const &', 'arg0')])
+    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel() [constructor]
+    cls.add_constructor([])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::ChangeState(int newState) [member function]
+    cls.add_method('ChangeState', 
+                   'void', 
+                   [param('int', 'newState')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: int ns3::AcousticModemEnergyModel::GetCurrentState() const [member function]
+    cls.add_method('GetCurrentState', 
+                   'int', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetIdlePowerW() const [member function]
+    cls.add_method('GetIdlePowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: ns3::Ptr<ns3::Node> ns3::AcousticModemEnergyModel::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetRxPowerW() const [member function]
+    cls.add_method('GetRxPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetSleepPowerW() const [member function]
+    cls.add_method('GetSleepPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTotalEnergyConsumption() const [member function]
+    cls.add_method('GetTotalEnergyConsumption', 
+                   'double', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTxPowerW() const [member function]
+    cls.add_method('GetTxPowerW', 
+                   'double', 
+                   [], 
+                   is_const=True)
+    ## acoustic-modem-energy-model.h: static ns3::TypeId ns3::AcousticModemEnergyModel::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::HandleEnergyDepletion() [member function]
+    cls.add_method('HandleEnergyDepletion', 
+                   'void', 
+                   [], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('SetEnergyDepletionCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
+    cls.add_method('SetEnergySource', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
+    cls.add_method('SetIdlePowerW', 
+                   'void', 
+                   [param('double', 'idlePowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetRxPowerW(double rxPowerW) [member function]
+    cls.add_method('SetRxPowerW', 
+                   'void', 
+                   [param('double', 'rxPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
+    cls.add_method('SetSleepPowerW', 
+                   'void', 
+                   [param('double', 'sleepPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetTxPowerW(double txPowerW) [member function]
+    cls.add_method('SetTxPowerW', 
+                   'void', 
+                   [param('double', 'txPowerW')])
+    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
+    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::DoGetCurrentA() const [member function]
+    cls.add_method('DoGetCurrentA', 
+                   'double', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
     return
 
 def register_functions(root_module):
     module = root_module
+    ## uan-tx-mode.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeUanModesListChecker() [free function]
+    module.add_function('MakeUanModesListChecker', 
+                        'ns3::Ptr< ns3::AttributeChecker const >', 
+                        [])
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_virtual_net_device.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_virtual_net_device.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## virtual-net-device.h: ns3::VirtualNetDevice [class]
+    module.add_class('VirtualNetDevice', parent=root_module['ns3::NetDevice'])
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +97,164 @@
     
 
 def register_methods(root_module):
+    register_Ns3VirtualNetDevice_methods(root_module, root_module['ns3::VirtualNetDevice'])
+    return
+
+def register_Ns3VirtualNetDevice_methods(root_module, cls):
+    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice(ns3::VirtualNetDevice const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::VirtualNetDevice const &', 'arg0')])
+    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice() [constructor]
+    cls.add_constructor([])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
+    cls.add_method('AddLinkChangeCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Address', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Ptr<ns3::Channel> ns3::VirtualNetDevice::GetChannel() const [member function]
+    cls.add_method('GetChannel', 
+                   'ns3::Ptr< ns3::Channel >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: uint32_t ns3::VirtualNetDevice::GetIfIndex() const [member function]
+    cls.add_method('GetIfIndex', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: uint16_t ns3::VirtualNetDevice::GetMtu() const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv4Address', 'multicastGroup')], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
+    cls.add_method('GetMulticast', 
+                   'ns3::Address', 
+                   [param('ns3::Ipv6Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: ns3::Ptr<ns3::Node> ns3::VirtualNetDevice::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: static ns3::TypeId ns3::VirtualNetDevice::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBridge() const [member function]
+    cls.add_method('IsBridge', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBroadcast() const [member function]
+    cls.add_method('IsBroadcast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsLinkUp() const [member function]
+    cls.add_method('IsLinkUp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsMulticast() const [member function]
+    cls.add_method('IsMulticast', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsPointToPoint() const [member function]
+    cls.add_method('IsPointToPoint', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::NeedsArp() const [member function]
+    cls.add_method('NeedsArp', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Receive(ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('Receive', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('Send', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
+    cls.add_method('SendFrom', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetAddress(ns3::Address address) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'address')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIfIndex(uint32_t const index) [member function]
+    cls.add_method('SetIfIndex', 
+                   'void', 
+                   [param('uint32_t const', 'index')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIsPointToPoint(bool isPointToPoint) [member function]
+    cls.add_method('SetIsPointToPoint', 
+                   'void', 
+                   [param('bool', 'isPointToPoint')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SetMtu(uint16_t const mtu) [member function]
+    cls.add_method('SetMtu', 
+                   'bool', 
+                   [param('uint16_t const', 'mtu')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNeedsArp(bool needsArp) [member function]
+    cls.add_method('SetNeedsArp', 
+                   'void', 
+                   [param('bool', 'needsArp')])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetPromiscReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
+    cls.add_method('SetReceiveCallback', 
+                   'void', 
+                   [param('ns3::Callback< 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 >', 'cb')], 
+                   is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSendCallback(ns3::Callback<bool, ns3::Ptr<ns3::Packet>, ns3::Address const&, ns3::Address const&, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> transmitCb) [member function]
+    cls.add_method('SetSendCallback', 
+                   'void', 
+                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::Address const &, ns3::Address const &, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'transmitCb')])
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSupportsSendFrom(bool supportsSendFrom) [member function]
+    cls.add_method('SetSupportsSendFrom', 
+                   'void', 
+                   [param('bool', 'supportsSendFrom')])
+    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SupportsSendFrom() const [member function]
+    cls.add_method('SupportsSendFrom', 
+                   'bool', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## virtual-net-device.h: void ns3::VirtualNetDevice::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_visualizer.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_visualizer.py	Tue Feb 08 13:08:45 2011 -0500
@@ -3,6 +3,35 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## pyviz.h: ns3::PyViz [class]
+    module.add_class('PyViz')
+    ## pyviz.h: ns3::PyViz::PacketCaptureMode [enumeration]
+    module.add_enum('PacketCaptureMode', ['PACKET_CAPTURE_DISABLED', 'PACKET_CAPTURE_FILTER_HEADERS_OR', 'PACKET_CAPTURE_FILTER_HEADERS_AND'], outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample [struct]
+    module.add_class('LastPacketsSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics [struct]
+    module.add_class('NetDeviceStatistics', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::NodeStatistics [struct]
+    module.add_class('NodeStatistics', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions [struct]
+    module.add_class('PacketCaptureOptions', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketDropSample [struct]
+    module.add_class('PacketDropSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::PacketSample [struct]
+    module.add_class('PacketSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::RxPacketSample [struct]
+    module.add_class('RxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::TransmissionSample [struct]
+    module.add_class('TransmissionSample', outer_class=root_module['ns3::PyViz'])
+    ## pyviz.h: ns3::PyViz::TxPacketSample [struct]
+    module.add_class('TxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
+    module.add_container('std::vector< ns3::PyViz::RxPacketSample >', 'ns3::PyViz::RxPacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::TxPacketSample >', 'ns3::PyViz::TxPacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::PacketSample >', 'ns3::PyViz::PacketSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::TransmissionSample >', 'ns3::PyViz::TransmissionSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::PacketDropSample >', 'ns3::PyViz::PacketDropSample', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::NetDeviceStatistics >', 'ns3::PyViz::NetDeviceStatistics', container_type='vector')
+    module.add_container('std::vector< ns3::PyViz::NodeStatistics >', 'ns3::PyViz::NodeStatistics', container_type='vector')
     
     ## Register a nested module for the namespace Config
     
@@ -95,6 +124,195 @@
     
 
 def register_methods(root_module):
+    register_Ns3PyViz_methods(root_module, root_module['ns3::PyViz'])
+    register_Ns3PyVizLastPacketsSample_methods(root_module, root_module['ns3::PyViz::LastPacketsSample'])
+    register_Ns3PyVizNetDeviceStatistics_methods(root_module, root_module['ns3::PyViz::NetDeviceStatistics'])
+    register_Ns3PyVizNodeStatistics_methods(root_module, root_module['ns3::PyViz::NodeStatistics'])
+    register_Ns3PyVizPacketCaptureOptions_methods(root_module, root_module['ns3::PyViz::PacketCaptureOptions'])
+    register_Ns3PyVizPacketDropSample_methods(root_module, root_module['ns3::PyViz::PacketDropSample'])
+    register_Ns3PyVizPacketSample_methods(root_module, root_module['ns3::PyViz::PacketSample'])
+    register_Ns3PyVizRxPacketSample_methods(root_module, root_module['ns3::PyViz::RxPacketSample'])
+    register_Ns3PyVizTransmissionSample_methods(root_module, root_module['ns3::PyViz::TransmissionSample'])
+    register_Ns3PyVizTxPacketSample_methods(root_module, root_module['ns3::PyViz::TxPacketSample'])
+    return
+
+def register_Ns3PyViz_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PyViz(ns3::PyViz const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PyViz() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample ns3::PyViz::GetLastPackets(uint32_t nodeId) const [member function]
+    cls.add_method('GetLastPackets', 
+                   'ns3::PyViz::LastPacketsSample', 
+                   [param('uint32_t', 'nodeId')], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::NodeStatistics,std::allocator<ns3::PyViz::NodeStatistics> > ns3::PyViz::GetNodesStatistics() const [member function]
+    cls.add_method('GetNodesStatistics', 
+                   'std::vector< ns3::PyViz::NodeStatistics >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::PacketDropSample,std::allocator<ns3::PyViz::PacketDropSample> > ns3::PyViz::GetPacketDropSamples() const [member function]
+    cls.add_method('GetPacketDropSamples', 
+                   'std::vector< ns3::PyViz::PacketDropSample >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<std::string, std::allocator<std::string> > ns3::PyViz::GetPauseMessages() const [member function]
+    cls.add_method('GetPauseMessages', 
+                   'std::vector< std::string >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: std::vector<ns3::PyViz::TransmissionSample,std::allocator<ns3::PyViz::TransmissionSample> > ns3::PyViz::GetTransmissionSamples() const [member function]
+    cls.add_method('GetTransmissionSamples', 
+                   'std::vector< ns3::PyViz::TransmissionSample >', 
+                   [], 
+                   is_const=True)
+    ## pyviz.h: static void ns3::PyViz::LineClipping(double boundsX1, double boundsY1, double boundsX2, double boundsY2, double & lineX1, double & lineY1, double & lineX2, double & lineY2) [member function]
+    cls.add_method('LineClipping', 
+                   'void', 
+                   [param('double', 'boundsX1'), param('double', 'boundsY1'), param('double', 'boundsX2'), param('double', 'boundsY2'), param('double &', 'lineX1', direction=3), param('double &', 'lineY1', direction=3), param('double &', 'lineX2', direction=3), param('double &', 'lineY2', direction=3)], 
+                   is_static=True)
+    ## pyviz.h: static void ns3::PyViz::Pause(std::string const & message) [member function]
+    cls.add_method('Pause', 
+                   'void', 
+                   [param('std::string const &', 'message')], 
+                   is_static=True)
+    ## pyviz.h: void ns3::PyViz::RegisterCsmaLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterCsmaLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::RegisterDropTracePath(std::string const & tracePath) [member function]
+    cls.add_method('RegisterDropTracePath', 
+                   'void', 
+                   [param('std::string const &', 'tracePath')])
+    ## pyviz.h: void ns3::PyViz::RegisterPointToPointLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterPointToPointLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::RegisterWifiLikeDevice(std::string const & deviceTypeName) [member function]
+    cls.add_method('RegisterWifiLikeDevice', 
+                   'void', 
+                   [param('std::string const &', 'deviceTypeName')])
+    ## pyviz.h: void ns3::PyViz::SetNodesOfInterest(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > nodes) [member function]
+    cls.add_method('SetNodesOfInterest', 
+                   'void', 
+                   [param('std::set< unsigned int >', 'nodes')])
+    ## pyviz.h: void ns3::PyViz::SetPacketCaptureOptions(uint32_t nodeId, ns3::PyViz::PacketCaptureOptions options) [member function]
+    cls.add_method('SetPacketCaptureOptions', 
+                   'void', 
+                   [param('uint32_t', 'nodeId'), param('ns3::PyViz::PacketCaptureOptions', 'options')])
+    ## pyviz.h: void ns3::PyViz::SimulatorRunUntil(ns3::Time time) [member function]
+    cls.add_method('SimulatorRunUntil', 
+                   'void', 
+                   [param('ns3::Time', 'time')])
+    return
+
+def register_Ns3PyVizLastPacketsSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample(ns3::PyViz::LastPacketsSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::LastPacketsSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastDroppedPackets [variable]
+    cls.add_instance_attribute('lastDroppedPackets', 'std::vector< ns3::PyViz::PacketSample >', is_const=False)
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastReceivedPackets [variable]
+    cls.add_instance_attribute('lastReceivedPackets', 'std::vector< ns3::PyViz::RxPacketSample >', is_const=False)
+    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastTransmittedPackets [variable]
+    cls.add_instance_attribute('lastTransmittedPackets', 'std::vector< ns3::PyViz::TxPacketSample >', is_const=False)
+    return
+
+def register_Ns3PyVizNetDeviceStatistics_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics(ns3::PyViz::NetDeviceStatistics const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::NetDeviceStatistics const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedBytes [variable]
+    cls.add_instance_attribute('receivedBytes', 'uint64_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedPackets [variable]
+    cls.add_instance_attribute('receivedPackets', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedBytes [variable]
+    cls.add_instance_attribute('transmittedBytes', 'uint64_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedPackets [variable]
+    cls.add_instance_attribute('transmittedPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3PyVizNodeStatistics_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics(ns3::PyViz::NodeStatistics const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::NodeStatistics const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::NodeStatistics::nodeId [variable]
+    cls.add_instance_attribute('nodeId', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::NodeStatistics::statistics [variable]
+    cls.add_instance_attribute('statistics', 'std::vector< ns3::PyViz::NetDeviceStatistics >', is_const=False)
+    return
+
+def register_Ns3PyVizPacketCaptureOptions_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions(ns3::PyViz::PacketCaptureOptions const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketCaptureOptions const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::headers [variable]
+    cls.add_instance_attribute('headers', 'std::set< ns3::TypeId >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::mode [variable]
+    cls.add_instance_attribute('mode', 'ns3::PyViz::PacketCaptureMode', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::numLastPackets [variable]
+    cls.add_instance_attribute('numLastPackets', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3PyVizPacketDropSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample(ns3::PyViz::PacketDropSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketDropSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketDropSample::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketDropSample::transmitter [variable]
+    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
+    return
+
+def register_Ns3PyVizPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample(ns3::PyViz::PacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::PacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::PacketSample::device [variable]
+    cls.add_instance_attribute('device', 'ns3::Ptr< ns3::NetDevice >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketSample::packet [variable]
+    cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False)
+    ## pyviz.h: ns3::PyViz::PacketSample::time [variable]
+    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
+    return
+
+def register_Ns3PyVizRxPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample(ns3::PyViz::RxPacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::RxPacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::RxPacketSample::from [variable]
+    cls.add_instance_attribute('from', 'ns3::Mac48Address', is_const=False)
+    return
+
+def register_Ns3PyVizTransmissionSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample(ns3::PyViz::TransmissionSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::TransmissionSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::TransmissionSample::bytes [variable]
+    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::channel [variable]
+    cls.add_instance_attribute('channel', 'ns3::Ptr< ns3::Channel >', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::receiver [variable]
+    cls.add_instance_attribute('receiver', 'ns3::Ptr< ns3::Node >', is_const=False)
+    ## pyviz.h: ns3::PyViz::TransmissionSample::transmitter [variable]
+    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
+    return
+
+def register_Ns3PyVizTxPacketSample_methods(root_module, cls):
+    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample() [constructor]
+    cls.add_constructor([])
+    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample(ns3::PyViz::TxPacketSample const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::PyViz::TxPacketSample const &', 'arg0')])
+    ## pyviz.h: ns3::PyViz::TxPacketSample::to [variable]
+    cls.add_instance_attribute('to', 'ns3::Mac48Address', is_const=False)
     return
 
 def register_functions(root_module):
--- a/bindings/python/apidefs/gcc-LP64/ns3_module_wifi.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3_module_wifi.py	Tue Feb 08 13:08:45 2011 -0500
@@ -204,15 +204,15 @@
     ## dca-txop.h: ns3::DcaTxop [class]
     module.add_class('DcaTxop', parent=root_module['ns3::Dcf'])
     module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type='vector')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
+    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
     typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
     typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
     typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', 'ns3::WifiModeListIterator')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', 'ns3::WifiModeListIterator*')
-    typehandlers.add_type_alias('__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', 'ns3::WifiModeListIterator&')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
     typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
--- a/bindings/python/apidefs/gcc-LP64/ns3modulegen_generated.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/apidefs/gcc-LP64/ns3modulegen_generated.py	Tue Feb 08 13:08:45 2011 -0500
@@ -13,7 +13,6 @@
 
 import sys
 import ns3_module_core
-import ns3_module_lte
 import ns3_module_simulator
 import ns3_module_test
 import ns3_module_visualizer
@@ -26,15 +25,11 @@
 import ns3_module_bulk_send
 import ns3_module_csma
 import ns3_module_emu
-import ns3_module_energy
-import ns3_module_global_routing
 import ns3_module_internet_stack
-import ns3_module_list_routing
 import ns3_module_onoff
 import ns3_module_packet_sink
 import ns3_module_point_to_point
-import ns3_module_spectrum
-import ns3_module_static_routing
+import ns3_module_propagation
 import ns3_module_stats
 import ns3_module_tap_bridge
 import ns3_module_topology_read
@@ -42,20 +37,26 @@
 import ns3_module_virtual_net_device
 import ns3_module_wifi
 import ns3_module_wimax
-import ns3_module_uan
 import ns3_module_aodv
 import ns3_module_flow_monitor
 import ns3_module_nix_vector_routing
-import ns3_module_olsr
 import ns3_module_ping6
 import ns3_module_radvd
 import ns3_module_udp_client_server
 import ns3_module_udp_echo
-import ns3_module_dsdv
+import ns3_module_spectrum
+import ns3_module_energy
 import ns3_module_mesh
 import ns3_module_helper
+import ns3_module_lte
+import ns3_module_uan
 import ns3_module_dot11s
 import ns3_module_flame
+import ns3_module_dsdv
+import ns3_module_global_routing
+import ns3_module_list_routing
+import ns3_module_olsr
+import ns3_module_static_routing
 
 def module_init():
     root_module = Module('ns3', cpp_namespace='::ns3')
@@ -75,17 +76,6 @@
         ns3_module_core__local.register_types(module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_types(module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_types(module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_types(module)
     
@@ -218,28 +208,6 @@
         ns3_module_emu__local.register_types(module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_types(module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_types(module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_types(module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_types(module)
     
@@ -251,17 +219,6 @@
         ns3_module_internet_stack__local.register_types(module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_types(module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_types(module)
     
@@ -295,28 +252,17 @@
         ns3_module_point_to_point__local.register_types(module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_types(module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_types(module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_types(module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_types(module)
+        ns3_module_propagation__local.register_types(module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_types(module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_types(module)
     
@@ -394,17 +340,6 @@
         ns3_module_wimax__local.register_types(module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_types(module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_types(module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_types(module)
     
@@ -438,17 +373,6 @@
         ns3_module_nix_vector_routing__local.register_types(module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_types(module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_types(module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_types(module)
     
@@ -493,17 +417,28 @@
         ns3_module_udp_echo__local.register_types(module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_types(module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_types(module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_types(module)
+        ns3_module_spectrum__local.register_types(module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_types(module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_types(module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_types(module)
     
@@ -526,6 +461,28 @@
         ns3_module_helper__local.register_types(module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_types(module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_types(module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_types(module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_types(module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_types(module)
     
@@ -548,372 +505,80 @@
         ns3_module_flame__local.register_types(module)
     
     root_module.end_section('ns3_module_flame')
-    ## bridge-helper.h: ns3::BridgeHelper [class]
-    module.add_class('BridgeHelper')
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer [class]
-    module.add_class('DeviceEnergyModelContainer')
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper [class]
-    module.add_class('DeviceEnergyModelHelper', allow_subclassing=True)
-    ## energy-model-helper.h: ns3::EnergySourceHelper [class]
-    module.add_class('EnergySourceHelper', allow_subclassing=True)
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper [class]
-    module.add_class('FlowMonitorHelper')
-    ## global-route-manager.h: ns3::GlobalRouteManager [class]
-    module.add_class('GlobalRouteManager')
-    ## global-router-interface.h: ns3::GlobalRoutingLSA [class]
-    module.add_class('GlobalRoutingLSA')
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType [enumeration]
-    module.add_enum('LSType', ['Unknown', 'RouterLSA', 'NetworkLSA', 'SummaryLSA', 'SummaryLSA_ASBR', 'ASExternalLSAs'], outer_class=root_module['ns3::GlobalRoutingLSA'])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus [enumeration]
-    module.add_enum('SPFStatus', ['LSA_SPF_NOT_EXPLORED', 'LSA_SPF_CANDIDATE', 'LSA_SPF_IN_SPFTREE'], outer_class=root_module['ns3::GlobalRoutingLSA'])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord [class]
-    module.add_class('GlobalRoutingLinkRecord')
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType [enumeration]
-    module.add_enum('LinkType', ['Unknown', 'PointToPoint', 'TransitNetwork', 'StubNetwork', 'VirtualLink'], outer_class=root_module['ns3::GlobalRoutingLinkRecord'])
-    ## histogram.h: ns3::Histogram [class]
-    module.add_class('Histogram')
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry [class]
-    module.add_class('Ipv4MulticastRoutingTableEntry')
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry [class]
-    module.add_class('Ipv4RoutingTableEntry')
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper [class]
-    module.add_class('Ipv4StaticRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry [class]
-    module.add_class('Ipv6MulticastRoutingTableEntry')
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry [class]
-    module.add_class('Ipv6RoutingTableEntry')
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper [class]
-    module.add_class('Ipv6StaticRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
-    ## lte-helper.h: ns3::LteHelper [class]
-    module.add_class('LteHelper')
-    ## lte-helper.h: ns3::LteHelper::NetDeviceType [enumeration]
-    module.add_enum('NetDeviceType', ['DEVICE_TYPE_USER_EQUIPMENT', 'DEVICE_TYPE_ENODEB'], outer_class=root_module['ns3::LteHelper'])
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper [class]
-    module.add_class('LteSpectrumValueHelper')
-    ## olsr-helper.h: ns3::OlsrHelper [class]
-    module.add_class('OlsrHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## olsr-state.h: ns3::OlsrState [class]
-    module.add_class('OlsrState')
-    ## pyviz.h: ns3::PyViz [class]
-    module.add_class('PyViz')
-    ## pyviz.h: ns3::PyViz::PacketCaptureMode [enumeration]
-    module.add_enum('PacketCaptureMode', ['PACKET_CAPTURE_DISABLED', 'PACKET_CAPTURE_FILTER_HEADERS_OR', 'PACKET_CAPTURE_FILTER_HEADERS_AND'], outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample [struct]
-    module.add_class('LastPacketsSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics [struct]
-    module.add_class('NetDeviceStatistics', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::NodeStatistics [struct]
-    module.add_class('NodeStatistics', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions [struct]
-    module.add_class('PacketCaptureOptions', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketDropSample [struct]
-    module.add_class('PacketDropSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::PacketSample [struct]
-    module.add_class('PacketSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::RxPacketSample [struct]
-    module.add_class('RxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::TransmissionSample [struct]
-    module.add_class('TransmissionSample', outer_class=root_module['ns3::PyViz'])
-    ## pyviz.h: ns3::PyViz::TxPacketSample [struct]
-    module.add_class('TxPacketSample', parent=root_module['ns3::PyViz::PacketSample'], outer_class=root_module['ns3::PyViz'])
-    ## uan-mac-rc.h: ns3::Reservation [class]
-    module.add_class('Reservation')
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper [class]
-    module.add_class('RvBatteryModelHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## uan-prop-model.h: ns3::Tap [class]
-    module.add_class('Tap')
-    ## uan-address.h: ns3::UanAddress [class]
-    module.add_class('UanAddress')
-    ## uan-address.h: ns3::UanAddress [class]
-    root_module['ns3::UanAddress'].implicitly_converts_to(root_module['ns3::Address'])
-    ## uan-helper.h: ns3::UanHelper [class]
-    module.add_class('UanHelper')
-    ## uan-tx-mode.h: ns3::UanModesList [class]
-    module.add_class('UanModesList')
-    ## uan-transducer.h: ns3::UanPacketArrival [class]
-    module.add_class('UanPacketArrival')
-    ## uan-prop-model.h: ns3::UanPdp [class]
-    module.add_class('UanPdp')
-    ## uan-phy.h: ns3::UanPhyListener [class]
-    module.add_class('UanPhyListener', allow_subclassing=True)
-    ## uan-tx-mode.h: ns3::UanTxMode [class]
-    module.add_class('UanTxMode')
-    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType [enumeration]
-    module.add_enum('ModulationType', ['PSK', 'QAM', 'FSK', 'OTHER'], outer_class=root_module['ns3::UanTxMode'])
-    ## uan-tx-mode.h: ns3::UanTxModeFactory [class]
-    module.add_class('UanTxModeFactory')
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper [class]
-    module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener [class]
-    module.add_class('WifiRadioEnergyModelPhyListener', parent=root_module['ns3::WifiPhyListener'])
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper [class]
-    module.add_class('AcousticModemEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper'])
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper [class]
-    module.add_class('BasicEnergySourceHelper', parent=root_module['ns3::EnergySourceHelper'])
-    ## dsdv-helper.h: ns3::DsdvHelper [class]
-    module.add_class('DsdvHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper [class]
-    module.add_class('Ipv4GlobalRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper [class]
-    module.add_class('Ipv4ListRoutingHelper', parent=root_module['ns3::Ipv4RoutingHelper'])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper [class]
-    module.add_class('Ipv6ListRoutingHelper', parent=root_module['ns3::Ipv6RoutingHelper'])
-    ## lte-mac-header.h: ns3::LteMacHeader [class]
-    module.add_class('LteMacHeader', parent=root_module['ns3::Header'])
-    ## packet-scheduler.h: ns3::PacketScheduler [class]
-    module.add_class('PacketScheduler', parent=root_module['ns3::Object'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance [class]
-    module.add_class('RadioBearerInstance', parent=root_module['ns3::Object'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection [enumeration]
-    module.add_enum('BearerDirection', ['DIRECTION_TYPE_UL', 'DIRECTION_TYPE_DL'], outer_class=root_module['ns3::RadioBearerInstance'])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType [enumeration]
-    module.add_enum('BearerType', ['BEARER_TYPE_SRB1', 'BEARER_TYPE_SRB2', 'BEARER_TYPE_DRB'], outer_class=root_module['ns3::RadioBearerInstance'])
-    ## rlc-entity.h: ns3::RlcEntity [class]
-    module.add_class('RlcEntity', parent=root_module['ns3::Object'])
-    ## rrc-entity.h: ns3::RrcEntity [class]
-    module.add_class('RrcEntity', parent=root_module['ns3::Object'])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler [class]
-    module.add_class('SimplePacketScheduler', parent=root_module['ns3::PacketScheduler'])
-    ## uan-header-common.h: ns3::UanHeaderCommon [class]
-    module.add_class('UanHeaderCommon', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcAck [class]
-    module.add_class('UanHeaderRcAck', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts [class]
-    module.add_class('UanHeaderRcCts', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal [class]
-    module.add_class('UanHeaderRcCtsGlobal', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcData [class]
-    module.add_class('UanHeaderRcData', parent=root_module['ns3::Header'])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts [class]
-    module.add_class('UanHeaderRcRts', parent=root_module['ns3::Header'])
-    ## uan-mac.h: ns3::UanMac [class]
-    module.add_class('UanMac', parent=root_module['ns3::Object'])
-    ## uan-mac-aloha.h: ns3::UanMacAloha [class]
-    module.add_class('UanMacAloha', parent=root_module['ns3::UanMac'])
-    ## uan-mac-cw.h: ns3::UanMacCw [class]
-    module.add_class('UanMacCw', parent=[root_module['ns3::UanMac'], root_module['ns3::UanPhyListener']])
-    ## uan-mac-rc.h: ns3::UanMacRc [class]
-    module.add_class('UanMacRc', parent=root_module['ns3::UanMac'])
-    ## uan-mac-rc.h: ns3::UanMacRc [enumeration]
-    module.add_enum('', ['TYPE_DATA', 'TYPE_GWPING', 'TYPE_RTS', 'TYPE_CTS', 'TYPE_ACK'], outer_class=root_module['ns3::UanMacRc'])
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw [class]
-    module.add_class('UanMacRcGw', parent=root_module['ns3::UanMac'])
-    ## uan-noise-model.h: ns3::UanNoiseModel [class]
-    module.add_class('UanNoiseModel', parent=root_module['ns3::Object'])
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault [class]
-    module.add_class('UanNoiseModelDefault', parent=root_module['ns3::UanNoiseModel'])
-    ## uan-phy.h: ns3::UanPhy [class]
-    module.add_class('UanPhy', parent=root_module['ns3::Object'])
-    ## uan-phy.h: ns3::UanPhy::State [enumeration]
-    module.add_enum('State', ['IDLE', 'CCABUSY', 'RX', 'TX', 'SLEEP'], outer_class=root_module['ns3::UanPhy'])
-    ## uan-phy.h: ns3::UanPhyCalcSinr [class]
-    module.add_class('UanPhyCalcSinr', parent=root_module['ns3::Object'])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault [class]
-    module.add_class('UanPhyCalcSinrDefault', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual [class]
-    module.add_class('UanPhyCalcSinrDual', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk [class]
-    module.add_class('UanPhyCalcSinrFhFsk', parent=root_module['ns3::UanPhyCalcSinr'])
-    ## uan-phy-dual.h: ns3::UanPhyDual [class]
-    module.add_class('UanPhyDual', parent=root_module['ns3::UanPhy'])
-    ## uan-phy-gen.h: ns3::UanPhyGen [class]
-    module.add_class('UanPhyGen', parent=root_module['ns3::UanPhy'])
-    ## uan-phy.h: ns3::UanPhyPer [class]
-    module.add_class('UanPhyPer', parent=root_module['ns3::Object'])
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault [class]
-    module.add_class('UanPhyPerGenDefault', parent=root_module['ns3::UanPhyPer'])
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem [class]
-    module.add_class('UanPhyPerUmodem', parent=root_module['ns3::UanPhyPer'])
-    ## uan-prop-model.h: ns3::UanPropModel [class]
-    module.add_class('UanPropModel', parent=root_module['ns3::Object'])
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal [class]
-    module.add_class('UanPropModelIdeal', parent=root_module['ns3::UanPropModel'])
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp [class]
-    module.add_class('UanPropModelThorp', parent=root_module['ns3::UanPropModel'])
-    ## uan-transducer.h: ns3::UanTransducer [class]
-    module.add_class('UanTransducer', parent=root_module['ns3::Object'])
-    ## uan-transducer.h: ns3::UanTransducer::State [enumeration]
-    module.add_enum('State', ['TX', 'RX'], outer_class=root_module['ns3::UanTransducer'])
-    ## uan-transducer-hd.h: ns3::UanTransducerHd [class]
-    module.add_class('UanTransducerHd', parent=root_module['ns3::UanTransducer'])
-    ## ue-manager.h: ns3::UeManager [class]
-    module.add_class('UeManager', parent=root_module['ns3::Object'])
-    ## ue-record.h: ns3::UeRecord [class]
-    module.add_class('UeRecord', parent=root_module['ns3::Object'])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback [struct]
-    module.add_class('CqiFeedback', outer_class=root_module['ns3::UeRecord'])
-    ## amc-module.h: ns3::AmcModule [class]
-    module.add_class('AmcModule', parent=root_module['ns3::Object'])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters [class]
-    module.add_class('BearerQosParameters', parent=root_module['ns3::Object'])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType [enumeration]
-    module.add_enum('BearerQosType', ['BEARER_TYPE_GBR', 'BEARER_TYPE_NGBR'], outer_class=root_module['ns3::BearerQosParameters'])
-    ## channel-realization.h: ns3::ChannelRealization [class]
-    module.add_class('ChannelRealization', parent=root_module['ns3::Object'])
-    ## device-energy-model.h: ns3::DeviceEnergyModel [class]
-    module.add_class('DeviceEnergyModel', parent=root_module['ns3::Object'])
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel [class]
-    module.add_class('DiscreteTimeLossModel', parent=root_module['ns3::Object'])
-    ## energy-source.h: ns3::EnergySource [class]
-    module.add_class('EnergySource', parent=root_module['ns3::Object'])
-    ## energy-source-container.h: ns3::EnergySourceContainer [class]
-    module.add_class('EnergySourceContainer', parent=root_module['ns3::Object'])
-    ## flow-classifier.h: ns3::FlowClassifier [class]
-    module.add_class('FlowClassifier', parent=root_module['ns3::SimpleRefCount< ns3::FlowClassifier, ns3::empty, ns3::DefaultDeleter<ns3::FlowClassifier> >'])
-    ## flow-monitor.h: ns3::FlowMonitor [class]
-    module.add_class('FlowMonitor', parent=root_module['ns3::Object'])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats [struct]
-    module.add_class('FlowStats', outer_class=root_module['ns3::FlowMonitor'])
-    ## flow-probe.h: ns3::FlowProbe [class]
-    module.add_class('FlowProbe', parent=root_module['ns3::SimpleRefCount< ns3::FlowProbe, ns3::empty, ns3::DefaultDeleter<ns3::FlowProbe> >'])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats [struct]
-    module.add_class('FlowStats', outer_class=root_module['ns3::FlowProbe'])
-    ## global-router-interface.h: ns3::GlobalRouter [class]
-    module.add_class('GlobalRouter', is_singleton=True, parent=root_module['ns3::Object'])
-    ## ideal-control-messages.h: ns3::IdealControlMessage [class]
-    module.add_class('IdealControlMessage', parent=root_module['ns3::SimpleRefCount< ns3::IdealControlMessage, ns3::empty, ns3::DefaultDeleter<ns3::IdealControlMessage> >'])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType [enumeration]
-    module.add_enum('MessageType', ['CQI_FEEDBACKS', 'ALLOCATION_MAP'], outer_class=root_module['ns3::IdealControlMessage'])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier [class]
-    module.add_class('Ipv4FlowClassifier', parent=root_module['ns3::FlowClassifier'])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple [struct]
-    module.add_class('FiveTuple', outer_class=root_module['ns3::Ipv4FlowClassifier'])
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe [class]
-    module.add_class('Ipv4FlowProbe', parent=root_module['ns3::FlowProbe'])
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::DropReason [enumeration]
-    module.add_enum('DropReason', ['DROP_NO_ROUTE', 'DROP_TTL_EXPIRE', 'DROP_BAD_CHECKSUM', 'DROP_QUEUE', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_INVALID_REASON'], outer_class=root_module['ns3::Ipv4FlowProbe'])
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
-    module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting [class]
-    module.add_class('Ipv6StaticRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel [class]
-    module.add_class('JakesFadingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource [class]
-    module.add_class('LiIonEnergySource', parent=root_module['ns3::EnergySource'])
-    ## lte-mac-queue.h: ns3::LteMacQueue [class]
-    module.add_class('LteMacQueue', parent=root_module['ns3::Object'])
-    ## lte-phy.h: ns3::LtePhy [class]
-    module.add_class('LtePhy', parent=root_module['ns3::Object'])
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel [class]
-    module.add_class('LtePropagationLossModel', parent=root_module['ns3::SpectrumPropagationLossModel'])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy [class]
-    module.add_class('LteSpectrumPhy', parent=root_module['ns3::SpectrumPhy'])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::State [enumeration]
-    module.add_enum('State', ['IDLE', 'TX', 'RX'], outer_class=root_module['ns3::LteSpectrumPhy'])
-    ## mac-entity.h: ns3::MacEntity [class]
-    module.add_class('MacEntity', parent=root_module['ns3::Object'])
-    ## path-loss-model.h: ns3::PathLossModel [class]
-    module.add_class('PathLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage [class]
-    module.add_class('PdcchMapIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::Direction [enumeration]
-    module.add_enum('Direction', ['DOWNLINK', 'UPLINK'], outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord [struct]
-    module.add_class('IdealPdcchRecord', outer_class=root_module['ns3::PdcchMapIdealControlMessage'])
-    ## penetration-loss-model.h: ns3::PenetrationLossModel [class]
-    module.add_class('PenetrationLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## rv-battery-model.h: ns3::RvBatteryModel [class]
-    module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource'])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel [class]
-    module.add_class('ShadowingLossModel', parent=root_module['ns3::DiscreteTimeLossModel'])
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel [class]
-    module.add_class('SimpleDeviceEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## uan-channel.h: ns3::UanChannel [class]
-    module.add_class('UanChannel', parent=root_module['ns3::Channel'])
-    ## uan-tx-mode.h: ns3::UanModesListChecker [class]
-    module.add_class('UanModesListChecker', parent=root_module['ns3::AttributeChecker'])
-    ## uan-tx-mode.h: ns3::UanModesListValue [class]
-    module.add_class('UanModesListValue', parent=root_module['ns3::AttributeValue'])
-    ## uan-net-device.h: ns3::UanNetDevice [class]
-    module.add_class('UanNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ue-phy.h: ns3::UeLtePhy [class]
-    module.add_class('UeLtePhy', parent=root_module['ns3::LtePhy'])
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy [class]
-    module.add_class('UeLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
-    ## ue-mac-entity.h: ns3::UeMacEntity [class]
-    module.add_class('UeMacEntity', parent=root_module['ns3::MacEntity'])
-    ## virtual-net-device.h: ns3::VirtualNetDevice [class]
-    module.add_class('VirtualNetDevice', parent=root_module['ns3::NetDevice'])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel [class]
-    module.add_class('WifiRadioEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel [class]
-    module.add_class('AcousticModemEnergyModel', parent=root_module['ns3::DeviceEnergyModel'])
-    ## basic-energy-source.h: ns3::BasicEnergySource [class]
-    module.add_class('BasicEnergySource', parent=root_module['ns3::EnergySource'])
-    ## bridge-channel.h: ns3::BridgeChannel [class]
-    module.add_class('BridgeChannel', parent=root_module['ns3::Channel'])
-    ## bridge-net-device.h: ns3::BridgeNetDevice [class]
-    module.add_class('BridgeNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage [class]
-    module.add_class('CqiIdealControlMessage', parent=root_module['ns3::IdealControlMessage'])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback [struct]
-    module.add_class('CqiFeedback', outer_class=root_module['ns3::CqiIdealControlMessage'])
-    ## enb-phy.h: ns3::EnbLtePhy [class]
-    module.add_class('EnbLtePhy', parent=root_module['ns3::LtePhy'])
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy [class]
-    module.add_class('EnbLteSpectrumPhy', parent=root_module['ns3::LteSpectrumPhy'])
-    ## enb-mac-entity.h: ns3::EnbMacEntity [class]
-    module.add_class('EnbMacEntity', parent=root_module['ns3::MacEntity'])
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting [class]
-    module.add_class('Ipv4GlobalRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting [class]
-    module.add_class('Ipv4ListRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting [class]
-    module.add_class('Ipv6ListRouting', parent=root_module['ns3::Ipv6RoutingProtocol'])
-    ## lte-net-device.h: ns3::LteNetDevice [class]
-    module.add_class('LteNetDevice', parent=root_module['ns3::NetDevice'])
-    ## ue-net-device.h: ns3::UeNetDevice [class]
-    module.add_class('UeNetDevice', parent=root_module['ns3::LteNetDevice'])
-    ## enb-net-device.h: ns3::EnbNetDevice [class]
-    module.add_class('EnbNetDevice', parent=root_module['ns3::LteNetDevice'])
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_types(module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_types(module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_types(module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_types(module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_types(module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_types(module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_types(module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_types(module)
+    
+    root_module.end_section('ns3_module_static_routing')
     module.add_container('std::vector< unsigned int >', 'unsigned int', container_type='vector')
     module.add_container('std::vector< bool >', 'bool', container_type='vector')
     module.add_container('std::vector< int >', 'int', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::MprSelectorTuple >', 'ns3::olsr::MprSelectorTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::NeighborTuple >', 'ns3::olsr::NeighborTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::TwoHopNeighborTuple >', 'ns3::olsr::TwoHopNeighborTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::LinkTuple >', 'ns3::olsr::LinkTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::TopologyTuple >', 'ns3::olsr::TopologyTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::IfaceAssocTuple >', 'ns3::olsr::IfaceAssocTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::AssociationTuple >', 'ns3::olsr::AssociationTuple', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::Association >', 'ns3::olsr::Association', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::RxPacketSample >', 'ns3::PyViz::RxPacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::TxPacketSample >', 'ns3::PyViz::TxPacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::PacketSample >', 'ns3::PyViz::PacketSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::TransmissionSample >', 'ns3::PyViz::TransmissionSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::PacketDropSample >', 'ns3::PyViz::PacketDropSample', container_type='vector')
-    module.add_container('std::vector< ns3::PyViz::NetDeviceStatistics >', 'ns3::PyViz::NetDeviceStatistics', container_type='vector')
     module.add_container('std::vector< std::string >', 'std::string', container_type='vector')
     module.add_container('std::set< unsigned int >', 'unsigned int', container_type='set')
-    module.add_container('std::vector< ns3::PyViz::NodeStatistics >', 'ns3::PyViz::NodeStatistics', container_type='vector')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress >', container_type='list')
     module.add_container('std::vector< ns3::ServiceFlow * >', 'ns3::ServiceFlow *', container_type='vector')
-    module.add_container('std::vector< ns3::Tap >', 'ns3::Tap', container_type='vector')
     module.add_container('std::vector< std::complex< double > >', 'std::complex< double >', container_type='vector')
     module.add_container('std::vector< double >', 'double', container_type='vector')
     module.add_container('ns3::bvec', 'bool', container_type='vector')
     module.add_container('std::vector< ns3::SSRecord * >', 'ns3::SSRecord *', container_type='vector')
     module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
     module.add_container('std::set< unsigned char >', 'unsigned char', container_type='set')
-    module.add_container('std::list< ns3::UanPacketArrival >', 'ns3::UanPacketArrival', container_type='list')
-    module.add_container('std::vector< ns3::UeRecord::CqiFeedback >', 'ns3::UeRecord::CqiFeedback', container_type='vector')
     module.add_container('std::list< std::pair< ns3::OfdmDlMapIe *, ns3::Ptr< ns3::PacketBurst > > >', 'std::pair< ns3::OfdmDlMapIe *, ns3::Ptr< ns3::PacketBurst > >', container_type='list')
     module.add_container('std::vector< unsigned long >', 'long unsigned int', container_type='vector')
-    module.add_container('std::map< unsigned int, ns3::FlowMonitor::FlowStats >', ('unsigned int', 'ns3::FlowMonitor::FlowStats'), container_type='map')
-    module.add_container('std::map< unsigned int, ns3::FlowProbe::FlowStats >', ('unsigned int', 'ns3::FlowProbe::FlowStats'), container_type='map')
     module.add_container('std::vector< std::vector< double > >', 'std::vector< double >', container_type='vector')
     module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
-    module.add_container('std::deque< ns3::LteMacQueue::QueueElement >', 'ns3::LteMacQueue::QueueElement', container_type='dequeue')
     module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type='list')
-    module.add_container('std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord >', 'ns3::PdcchMapIdealControlMessage::IdealPdcchRecord', container_type='list')
     module.add_container('std::vector< std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > > >', 'std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > >', container_type='vector')
-    module.add_container('std::list< ns3::CqiIdealControlMessage::CqiFeedback >', 'ns3::CqiIdealControlMessage::CqiFeedback', container_type='list')
-    typehandlers.add_type_alias('uint32_t', 'ns3::FlowPacketId')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowPacketId*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowPacketId&')
-    typehandlers.add_type_alias('uint32_t', 'ns3::FlowId')
-    typehandlers.add_type_alias('uint32_t*', 'ns3::FlowId*')
-    typehandlers.add_type_alias('uint32_t&', 'ns3::FlowId&')
     
     ## Register a nested module for the namespace Config
     
@@ -993,21 +658,6 @@
 def register_types_ns3_dsdv(module):
     root_module = module.get_root()
     
-    ## dsdv-rtable.h: ns3::dsdv::RouteFlags [enumeration]
-    module.add_enum('RouteFlags', ['VALID', 'INVALID'])
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader [class]
-    module.add_class('DsdvHeader', parent=root_module['ns3::Header'])
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue [class]
-    module.add_class('PacketQueue')
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry [class]
-    module.add_class('QueueEntry')
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol [class]
-    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable [class]
-    module.add_class('RoutingTable')
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry [class]
-    module.add_class('RoutingTableEntry')
-    module.add_container('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry >', ('ns3::Ipv4Address', 'ns3::dsdv::RoutingTableEntry'), container_type='map')
 
 def register_types_ns3_flame(module):
     root_module = module.get_root()
@@ -1020,256 +670,8 @@
 def register_types_ns3_olsr(module):
     root_module = module.get_root()
     
-    ## olsr-repositories.h: ns3::olsr::Association [struct]
-    module.add_class('Association')
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple [struct]
-    module.add_class('AssociationTuple')
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple [struct]
-    module.add_class('DuplicateTuple')
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple [struct]
-    module.add_class('IfaceAssocTuple')
-    ## olsr-repositories.h: ns3::olsr::LinkTuple [struct]
-    module.add_class('LinkTuple')
-    ## olsr-header.h: ns3::olsr::MessageHeader [class]
-    module.add_class('MessageHeader', parent=root_module['ns3::Header'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType [enumeration]
-    module.add_enum('MessageType', ['HELLO_MESSAGE', 'TC_MESSAGE', 'MID_MESSAGE', 'HNA_MESSAGE'], outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello [struct]
-    module.add_class('Hello', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage [struct]
-    module.add_class('LinkMessage', outer_class=root_module['ns3::olsr::MessageHeader::Hello'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna [struct]
-    module.add_class('Hna', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association [struct]
-    module.add_class('Association', outer_class=root_module['ns3::olsr::MessageHeader::Hna'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid [struct]
-    module.add_class('Mid', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc [struct]
-    module.add_class('Tc', outer_class=root_module['ns3::olsr::MessageHeader'])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple [struct]
-    module.add_class('MprSelectorTuple')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple [struct]
-    module.add_class('NeighborTuple')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::Status [enumeration]
-    module.add_enum('Status', ['STATUS_NOT_SYM', 'STATUS_SYM'], outer_class=root_module['ns3::olsr::NeighborTuple'])
-    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase [class]
-    module.add_class('OlsrMprTestCase', parent=root_module['ns3::TestCase'])
-    ## olsr-header.h: ns3::olsr::PacketHeader [class]
-    module.add_class('PacketHeader', parent=root_module['ns3::Header'])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol [class]
-    module.add_class('RoutingProtocol', parent=root_module['ns3::Ipv4RoutingProtocol'])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry [struct]
-    module.add_class('RoutingTableEntry')
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple [struct]
-    module.add_class('TopologyTuple')
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple [struct]
-    module.add_class('TwoHopNeighborTuple')
-    module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
-    module.add_container('std::vector< ns3::olsr::RoutingTableEntry >', 'ns3::olsr::RoutingTableEntry', container_type='vector')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >*', 'ns3::olsr::TopologySet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >&', 'ns3::olsr::TopologySet&')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >*', 'ns3::olsr::MprSet*')
-    typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >&', 'ns3::olsr::MprSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >*', 'ns3::olsr::MprSelectorSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >&', 'ns3::olsr::MprSelectorSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >', 'ns3::olsr::Associations')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >*', 'ns3::olsr::Associations*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::Association, std::allocator< ns3::olsr::Association > >&', 'ns3::olsr::Associations&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >*', 'ns3::olsr::IfaceAssocSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >&', 'ns3::olsr::IfaceAssocSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >*', 'ns3::olsr::TwoHopNeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >&', 'ns3::olsr::TwoHopNeighborSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >*', 'ns3::olsr::DuplicateSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >&', 'ns3::olsr::DuplicateSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >*', 'ns3::olsr::MessageList*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >&', 'ns3::olsr::MessageList&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >*', 'ns3::olsr::NeighborSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >&', 'ns3::olsr::NeighborSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >', 'ns3::olsr::AssociationSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >*', 'ns3::olsr::AssociationSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::AssociationTuple, std::allocator< ns3::olsr::AssociationTuple > >&', 'ns3::olsr::AssociationSet&')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >*', 'ns3::olsr::LinkSet*')
-    typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >&', 'ns3::olsr::LinkSet&')
 
 def register_methods(root_module):
-    register_Ns3BridgeHelper_methods(root_module, root_module['ns3::BridgeHelper'])
-    register_Ns3DeviceEnergyModelContainer_methods(root_module, root_module['ns3::DeviceEnergyModelContainer'])
-    register_Ns3DeviceEnergyModelHelper_methods(root_module, root_module['ns3::DeviceEnergyModelHelper'])
-    register_Ns3EnergySourceHelper_methods(root_module, root_module['ns3::EnergySourceHelper'])
-    register_Ns3FlowMonitorHelper_methods(root_module, root_module['ns3::FlowMonitorHelper'])
-    register_Ns3GlobalRouteManager_methods(root_module, root_module['ns3::GlobalRouteManager'])
-    register_Ns3GlobalRoutingLSA_methods(root_module, root_module['ns3::GlobalRoutingLSA'])
-    register_Ns3GlobalRoutingLinkRecord_methods(root_module, root_module['ns3::GlobalRoutingLinkRecord'])
-    register_Ns3Histogram_methods(root_module, root_module['ns3::Histogram'])
-    register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv4MulticastRoutingTableEntry'])
-    register_Ns3Ipv4RoutingTableEntry_methods(root_module, root_module['ns3::Ipv4RoutingTableEntry'])
-    register_Ns3Ipv4StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv4StaticRoutingHelper'])
-    register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, root_module['ns3::Ipv6MulticastRoutingTableEntry'])
-    register_Ns3Ipv6RoutingTableEntry_methods(root_module, root_module['ns3::Ipv6RoutingTableEntry'])
-    register_Ns3Ipv6StaticRoutingHelper_methods(root_module, root_module['ns3::Ipv6StaticRoutingHelper'])
-    register_Ns3LteHelper_methods(root_module, root_module['ns3::LteHelper'])
-    register_Ns3LteSpectrumValueHelper_methods(root_module, root_module['ns3::LteSpectrumValueHelper'])
-    register_Ns3OlsrHelper_methods(root_module, root_module['ns3::OlsrHelper'])
-    register_Ns3OlsrState_methods(root_module, root_module['ns3::OlsrState'])
-    register_Ns3PyViz_methods(root_module, root_module['ns3::PyViz'])
-    register_Ns3PyVizLastPacketsSample_methods(root_module, root_module['ns3::PyViz::LastPacketsSample'])
-    register_Ns3PyVizNetDeviceStatistics_methods(root_module, root_module['ns3::PyViz::NetDeviceStatistics'])
-    register_Ns3PyVizNodeStatistics_methods(root_module, root_module['ns3::PyViz::NodeStatistics'])
-    register_Ns3PyVizPacketCaptureOptions_methods(root_module, root_module['ns3::PyViz::PacketCaptureOptions'])
-    register_Ns3PyVizPacketDropSample_methods(root_module, root_module['ns3::PyViz::PacketDropSample'])
-    register_Ns3PyVizPacketSample_methods(root_module, root_module['ns3::PyViz::PacketSample'])
-    register_Ns3PyVizRxPacketSample_methods(root_module, root_module['ns3::PyViz::RxPacketSample'])
-    register_Ns3PyVizTransmissionSample_methods(root_module, root_module['ns3::PyViz::TransmissionSample'])
-    register_Ns3PyVizTxPacketSample_methods(root_module, root_module['ns3::PyViz::TxPacketSample'])
-    register_Ns3Reservation_methods(root_module, root_module['ns3::Reservation'])
-    register_Ns3RvBatteryModelHelper_methods(root_module, root_module['ns3::RvBatteryModelHelper'])
-    register_Ns3Tap_methods(root_module, root_module['ns3::Tap'])
-    register_Ns3UanAddress_methods(root_module, root_module['ns3::UanAddress'])
-    register_Ns3UanHelper_methods(root_module, root_module['ns3::UanHelper'])
-    register_Ns3UanModesList_methods(root_module, root_module['ns3::UanModesList'])
-    register_Ns3UanPacketArrival_methods(root_module, root_module['ns3::UanPacketArrival'])
-    register_Ns3UanPdp_methods(root_module, root_module['ns3::UanPdp'])
-    register_Ns3UanPhyListener_methods(root_module, root_module['ns3::UanPhyListener'])
-    register_Ns3UanTxMode_methods(root_module, root_module['ns3::UanTxMode'])
-    register_Ns3UanTxModeFactory_methods(root_module, root_module['ns3::UanTxModeFactory'])
-    register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper'])
-    register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener'])
-    register_Ns3AcousticModemEnergyModelHelper_methods(root_module, root_module['ns3::AcousticModemEnergyModelHelper'])
-    register_Ns3BasicEnergySourceHelper_methods(root_module, root_module['ns3::BasicEnergySourceHelper'])
-    register_Ns3DsdvHelper_methods(root_module, root_module['ns3::DsdvHelper'])
-    register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, root_module['ns3::Ipv4GlobalRoutingHelper'])
-    register_Ns3Ipv4ListRoutingHelper_methods(root_module, root_module['ns3::Ipv4ListRoutingHelper'])
-    register_Ns3Ipv6ListRoutingHelper_methods(root_module, root_module['ns3::Ipv6ListRoutingHelper'])
-    register_Ns3LteMacHeader_methods(root_module, root_module['ns3::LteMacHeader'])
-    register_Ns3PacketScheduler_methods(root_module, root_module['ns3::PacketScheduler'])
-    register_Ns3RadioBearerInstance_methods(root_module, root_module['ns3::RadioBearerInstance'])
-    register_Ns3RlcEntity_methods(root_module, root_module['ns3::RlcEntity'])
-    register_Ns3RrcEntity_methods(root_module, root_module['ns3::RrcEntity'])
-    register_Ns3SimplePacketScheduler_methods(root_module, root_module['ns3::SimplePacketScheduler'])
-    register_Ns3UanHeaderCommon_methods(root_module, root_module['ns3::UanHeaderCommon'])
-    register_Ns3UanHeaderRcAck_methods(root_module, root_module['ns3::UanHeaderRcAck'])
-    register_Ns3UanHeaderRcCts_methods(root_module, root_module['ns3::UanHeaderRcCts'])
-    register_Ns3UanHeaderRcCtsGlobal_methods(root_module, root_module['ns3::UanHeaderRcCtsGlobal'])
-    register_Ns3UanHeaderRcData_methods(root_module, root_module['ns3::UanHeaderRcData'])
-    register_Ns3UanHeaderRcRts_methods(root_module, root_module['ns3::UanHeaderRcRts'])
-    register_Ns3UanMac_methods(root_module, root_module['ns3::UanMac'])
-    register_Ns3UanMacAloha_methods(root_module, root_module['ns3::UanMacAloha'])
-    register_Ns3UanMacCw_methods(root_module, root_module['ns3::UanMacCw'])
-    register_Ns3UanMacRc_methods(root_module, root_module['ns3::UanMacRc'])
-    register_Ns3UanMacRcGw_methods(root_module, root_module['ns3::UanMacRcGw'])
-    register_Ns3UanNoiseModel_methods(root_module, root_module['ns3::UanNoiseModel'])
-    register_Ns3UanNoiseModelDefault_methods(root_module, root_module['ns3::UanNoiseModelDefault'])
-    register_Ns3UanPhy_methods(root_module, root_module['ns3::UanPhy'])
-    register_Ns3UanPhyCalcSinr_methods(root_module, root_module['ns3::UanPhyCalcSinr'])
-    register_Ns3UanPhyCalcSinrDefault_methods(root_module, root_module['ns3::UanPhyCalcSinrDefault'])
-    register_Ns3UanPhyCalcSinrDual_methods(root_module, root_module['ns3::UanPhyCalcSinrDual'])
-    register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, root_module['ns3::UanPhyCalcSinrFhFsk'])
-    register_Ns3UanPhyDual_methods(root_module, root_module['ns3::UanPhyDual'])
-    register_Ns3UanPhyGen_methods(root_module, root_module['ns3::UanPhyGen'])
-    register_Ns3UanPhyPer_methods(root_module, root_module['ns3::UanPhyPer'])
-    register_Ns3UanPhyPerGenDefault_methods(root_module, root_module['ns3::UanPhyPerGenDefault'])
-    register_Ns3UanPhyPerUmodem_methods(root_module, root_module['ns3::UanPhyPerUmodem'])
-    register_Ns3UanPropModel_methods(root_module, root_module['ns3::UanPropModel'])
-    register_Ns3UanPropModelIdeal_methods(root_module, root_module['ns3::UanPropModelIdeal'])
-    register_Ns3UanPropModelThorp_methods(root_module, root_module['ns3::UanPropModelThorp'])
-    register_Ns3UanTransducer_methods(root_module, root_module['ns3::UanTransducer'])
-    register_Ns3UanTransducerHd_methods(root_module, root_module['ns3::UanTransducerHd'])
-    register_Ns3UeManager_methods(root_module, root_module['ns3::UeManager'])
-    register_Ns3UeRecord_methods(root_module, root_module['ns3::UeRecord'])
-    register_Ns3UeRecordCqiFeedback_methods(root_module, root_module['ns3::UeRecord::CqiFeedback'])
-    register_Ns3AmcModule_methods(root_module, root_module['ns3::AmcModule'])
-    register_Ns3BearerQosParameters_methods(root_module, root_module['ns3::BearerQosParameters'])
-    register_Ns3ChannelRealization_methods(root_module, root_module['ns3::ChannelRealization'])
-    register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel'])
-    register_Ns3DiscreteTimeLossModel_methods(root_module, root_module['ns3::DiscreteTimeLossModel'])
-    register_Ns3EnergySource_methods(root_module, root_module['ns3::EnergySource'])
-    register_Ns3EnergySourceContainer_methods(root_module, root_module['ns3::EnergySourceContainer'])
-    register_Ns3FlowClassifier_methods(root_module, root_module['ns3::FlowClassifier'])
-    register_Ns3FlowMonitor_methods(root_module, root_module['ns3::FlowMonitor'])
-    register_Ns3FlowMonitorFlowStats_methods(root_module, root_module['ns3::FlowMonitor::FlowStats'])
-    register_Ns3FlowProbe_methods(root_module, root_module['ns3::FlowProbe'])
-    register_Ns3FlowProbeFlowStats_methods(root_module, root_module['ns3::FlowProbe::FlowStats'])
-    register_Ns3GlobalRouter_methods(root_module, root_module['ns3::GlobalRouter'])
-    register_Ns3IdealControlMessage_methods(root_module, root_module['ns3::IdealControlMessage'])
-    register_Ns3Ipv4FlowClassifier_methods(root_module, root_module['ns3::Ipv4FlowClassifier'])
-    register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, root_module['ns3::Ipv4FlowClassifier::FiveTuple'])
-    register_Ns3Ipv4FlowProbe_methods(root_module, root_module['ns3::Ipv4FlowProbe'])
-    register_Ns3Ipv4StaticRouting_methods(root_module, root_module['ns3::Ipv4StaticRouting'])
-    register_Ns3Ipv6StaticRouting_methods(root_module, root_module['ns3::Ipv6StaticRouting'])
-    register_Ns3JakesFadingLossModel_methods(root_module, root_module['ns3::JakesFadingLossModel'])
-    register_Ns3LiIonEnergySource_methods(root_module, root_module['ns3::LiIonEnergySource'])
-    register_Ns3LteMacQueue_methods(root_module, root_module['ns3::LteMacQueue'])
-    register_Ns3LtePhy_methods(root_module, root_module['ns3::LtePhy'])
-    register_Ns3LtePropagationLossModel_methods(root_module, root_module['ns3::LtePropagationLossModel'])
-    register_Ns3LteSpectrumPhy_methods(root_module, root_module['ns3::LteSpectrumPhy'])
-    register_Ns3MacEntity_methods(root_module, root_module['ns3::MacEntity'])
-    register_Ns3PathLossModel_methods(root_module, root_module['ns3::PathLossModel'])
-    register_Ns3PdcchMapIdealControlMessage_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage'])
-    register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, root_module['ns3::PdcchMapIdealControlMessage::IdealPdcchRecord'])
-    register_Ns3PenetrationLossModel_methods(root_module, root_module['ns3::PenetrationLossModel'])
-    register_Ns3RvBatteryModel_methods(root_module, root_module['ns3::RvBatteryModel'])
-    register_Ns3ShadowingLossModel_methods(root_module, root_module['ns3::ShadowingLossModel'])
-    register_Ns3SimpleDeviceEnergyModel_methods(root_module, root_module['ns3::SimpleDeviceEnergyModel'])
-    register_Ns3UanChannel_methods(root_module, root_module['ns3::UanChannel'])
-    register_Ns3UanModesListChecker_methods(root_module, root_module['ns3::UanModesListChecker'])
-    register_Ns3UanModesListValue_methods(root_module, root_module['ns3::UanModesListValue'])
-    register_Ns3UanNetDevice_methods(root_module, root_module['ns3::UanNetDevice'])
-    register_Ns3UeLtePhy_methods(root_module, root_module['ns3::UeLtePhy'])
-    register_Ns3UeLteSpectrumPhy_methods(root_module, root_module['ns3::UeLteSpectrumPhy'])
-    register_Ns3UeMacEntity_methods(root_module, root_module['ns3::UeMacEntity'])
-    register_Ns3VirtualNetDevice_methods(root_module, root_module['ns3::VirtualNetDevice'])
-    register_Ns3WifiRadioEnergyModel_methods(root_module, root_module['ns3::WifiRadioEnergyModel'])
-    register_Ns3AcousticModemEnergyModel_methods(root_module, root_module['ns3::AcousticModemEnergyModel'])
-    register_Ns3BasicEnergySource_methods(root_module, root_module['ns3::BasicEnergySource'])
-    register_Ns3BridgeChannel_methods(root_module, root_module['ns3::BridgeChannel'])
-    register_Ns3BridgeNetDevice_methods(root_module, root_module['ns3::BridgeNetDevice'])
-    register_Ns3CqiIdealControlMessage_methods(root_module, root_module['ns3::CqiIdealControlMessage'])
-    register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, root_module['ns3::CqiIdealControlMessage::CqiFeedback'])
-    register_Ns3EnbLtePhy_methods(root_module, root_module['ns3::EnbLtePhy'])
-    register_Ns3EnbLteSpectrumPhy_methods(root_module, root_module['ns3::EnbLteSpectrumPhy'])
-    register_Ns3EnbMacEntity_methods(root_module, root_module['ns3::EnbMacEntity'])
-    register_Ns3Ipv4GlobalRouting_methods(root_module, root_module['ns3::Ipv4GlobalRouting'])
-    register_Ns3Ipv4ListRouting_methods(root_module, root_module['ns3::Ipv4ListRouting'])
-    register_Ns3Ipv6ListRouting_methods(root_module, root_module['ns3::Ipv6ListRouting'])
-    register_Ns3LteNetDevice_methods(root_module, root_module['ns3::LteNetDevice'])
-    register_Ns3UeNetDevice_methods(root_module, root_module['ns3::UeNetDevice'])
-    register_Ns3EnbNetDevice_methods(root_module, root_module['ns3::EnbNetDevice'])
-    register_Ns3DsdvDsdvHeader_methods(root_module, root_module['ns3::dsdv::DsdvHeader'])
-    register_Ns3DsdvPacketQueue_methods(root_module, root_module['ns3::dsdv::PacketQueue'])
-    register_Ns3DsdvQueueEntry_methods(root_module, root_module['ns3::dsdv::QueueEntry'])
-    register_Ns3DsdvRoutingProtocol_methods(root_module, root_module['ns3::dsdv::RoutingProtocol'])
-    register_Ns3DsdvRoutingTable_methods(root_module, root_module['ns3::dsdv::RoutingTable'])
-    register_Ns3DsdvRoutingTableEntry_methods(root_module, root_module['ns3::dsdv::RoutingTableEntry'])
-    register_Ns3OlsrAssociation_methods(root_module, root_module['ns3::olsr::Association'])
-    register_Ns3OlsrAssociationTuple_methods(root_module, root_module['ns3::olsr::AssociationTuple'])
-    register_Ns3OlsrDuplicateTuple_methods(root_module, root_module['ns3::olsr::DuplicateTuple'])
-    register_Ns3OlsrIfaceAssocTuple_methods(root_module, root_module['ns3::olsr::IfaceAssocTuple'])
-    register_Ns3OlsrLinkTuple_methods(root_module, root_module['ns3::olsr::LinkTuple'])
-    register_Ns3OlsrMessageHeader_methods(root_module, root_module['ns3::olsr::MessageHeader'])
-    register_Ns3OlsrMessageHeaderHello_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello'])
-    register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, root_module['ns3::olsr::MessageHeader::Hello::LinkMessage'])
-    register_Ns3OlsrMessageHeaderHna_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna'])
-    register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, root_module['ns3::olsr::MessageHeader::Hna::Association'])
-    register_Ns3OlsrMessageHeaderMid_methods(root_module, root_module['ns3::olsr::MessageHeader::Mid'])
-    register_Ns3OlsrMessageHeaderTc_methods(root_module, root_module['ns3::olsr::MessageHeader::Tc'])
-    register_Ns3OlsrMprSelectorTuple_methods(root_module, root_module['ns3::olsr::MprSelectorTuple'])
-    register_Ns3OlsrNeighborTuple_methods(root_module, root_module['ns3::olsr::NeighborTuple'])
-    register_Ns3OlsrOlsrMprTestCase_methods(root_module, root_module['ns3::olsr::OlsrMprTestCase'])
-    register_Ns3OlsrPacketHeader_methods(root_module, root_module['ns3::olsr::PacketHeader'])
-    register_Ns3OlsrRoutingProtocol_methods(root_module, root_module['ns3::olsr::RoutingProtocol'])
-    register_Ns3OlsrRoutingTableEntry_methods(root_module, root_module['ns3::olsr::RoutingTableEntry'])
-    register_Ns3OlsrTopologyTuple_methods(root_module, root_module['ns3::olsr::TopologyTuple'])
-    register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, root_module['ns3::olsr::TwoHopNeighborTuple'])
     root_module.begin_section('ns3_module_core')
     ns3_module_core.register_methods(root_module)
     
@@ -1281,17 +683,6 @@
         ns3_module_core__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_methods(root_module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_methods(root_module)
     
@@ -1424,28 +815,6 @@
         ns3_module_emu__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_methods(root_module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_methods(root_module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_methods(root_module)
     
@@ -1457,17 +826,6 @@
         ns3_module_internet_stack__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_methods(root_module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_methods(root_module)
     
@@ -1501,28 +859,17 @@
         ns3_module_point_to_point__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_methods(root_module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_methods(root_module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_methods(root_module)
+        ns3_module_propagation__local.register_methods(root_module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_methods(root_module)
     
@@ -1600,17 +947,6 @@
         ns3_module_wimax__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_methods(root_module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_methods(root_module)
     
@@ -1644,17 +980,6 @@
         ns3_module_nix_vector_routing__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_methods(root_module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_methods(root_module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_methods(root_module)
     
@@ -1699,17 +1024,28 @@
         ns3_module_udp_echo__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_methods(root_module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_methods(root_module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_methods(root_module)
+        ns3_module_spectrum__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_methods(root_module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_methods(root_module)
     
@@ -1732,6 +1068,28 @@
         ns3_module_helper__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_methods(root_module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_methods(root_module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_methods(root_module)
     
@@ -1754,8511 +1112,61 @@
         ns3_module_flame__local.register_methods(root_module)
     
     root_module.end_section('ns3_module_flame')
-    return
-
-def register_Ns3BridgeHelper_methods(root_module, cls):
-    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper(ns3::BridgeHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeHelper const &', 'arg0')])
-    ## bridge-helper.h: ns3::BridgeHelper::BridgeHelper() [constructor]
-    cls.add_constructor([])
-    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(ns3::Ptr<ns3::Node> node, ns3::NetDeviceContainer c) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::NetDeviceContainer', 'c')])
-    ## bridge-helper.h: ns3::NetDeviceContainer ns3::BridgeHelper::Install(std::string nodeName, ns3::NetDeviceContainer c) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('std::string', 'nodeName'), param('ns3::NetDeviceContainer', 'c')])
-    ## bridge-helper.h: void ns3::BridgeHelper::SetDeviceAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetDeviceAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    return
-
-def register_Ns3DeviceEnergyModelContainer_methods(root_module, cls):
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'arg0')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer() [constructor]
-    cls.add_constructor([])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::Ptr<ns3::DeviceEnergyModel> model) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(std::string modelName) [constructor]
-    cls.add_constructor([param('std::string', 'modelName')])
-    ## device-energy-model-container.h: ns3::DeviceEnergyModelContainer::DeviceEnergyModelContainer(ns3::DeviceEnergyModelContainer const & a, ns3::DeviceEnergyModelContainer const & b) [constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelContainer const &', 'a'), param('ns3::DeviceEnergyModelContainer const &', 'b')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::DeviceEnergyModelContainer container) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::DeviceEnergyModelContainer', 'container')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(ns3::Ptr<ns3::DeviceEnergyModel> model) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'model')])
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Add(std::string modelName) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('std::string', 'modelName')])
-    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model-container.h: void ns3::DeviceEnergyModelContainer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## device-energy-model-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::DeviceEnergyModel>*,std::vector<ns3::Ptr<ns3::DeviceEnergyModel>, std::allocator<ns3::Ptr<ns3::DeviceEnergyModel> > > > ns3::DeviceEnergyModelContainer::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::DeviceEnergyModel > const, std::vector< ns3::Ptr< ns3::DeviceEnergyModel > > >', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model-container.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelContainer::Get(uint32_t i) const [member function]
-    cls.add_method('Get', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## device-energy-model-container.h: uint32_t ns3::DeviceEnergyModelContainer::GetN() const [member function]
-    cls.add_method('GetN', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3DeviceEnergyModelHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: ns3::DeviceEnergyModelHelper::DeviceEnergyModelHelper(ns3::DeviceEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModelHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('Install', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::DeviceEnergyModelContainer ns3::DeviceEnergyModelHelper::Install(ns3::NetDeviceContainer deviceContainer, ns3::EnergySourceContainer sourceContainer) const [member function]
-    cls.add_method('Install', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::NetDeviceContainer', 'deviceContainer'), param('ns3::EnergySourceContainer', 'sourceContainer')], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::DeviceEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::DeviceEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnergySourceHelper_methods(root_module, cls):
-    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper() [constructor]
-    cls.add_constructor([])
-    ## energy-model-helper.h: ns3::EnergySourceHelper::EnergySourceHelper(ns3::EnergySourceHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySourceHelper const &', 'arg0')])
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::Install(std::string nodeName) const [member function]
-    cls.add_method('Install', 
-                   'ns3::EnergySourceContainer', 
-                   [param('std::string', 'nodeName')], 
-                   is_const=True)
-    ## energy-model-helper.h: ns3::EnergySourceContainer ns3::EnergySourceHelper::InstallAll() const [member function]
-    cls.add_method('InstallAll', 
-                   'ns3::EnergySourceContainer', 
-                   [], 
-                   is_const=True)
-    ## energy-model-helper.h: void ns3::EnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FlowMonitorHelper_methods(root_module, cls):
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper(ns3::FlowMonitorHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitorHelper const &', 'arg0')])
-    ## flow-monitor-helper.h: ns3::FlowMonitorHelper::FlowMonitorHelper() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowClassifier> ns3::FlowMonitorHelper::GetClassifier() [member function]
-    cls.add_method('GetClassifier', 
-                   'ns3::Ptr< ns3::FlowClassifier >', 
-                   [])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::GetMonitor() [member function]
-    cls.add_method('GetMonitor', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::NodeContainer nodes) [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [param('ns3::NodeContainer', 'nodes')])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::Install(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## flow-monitor-helper.h: ns3::Ptr<ns3::FlowMonitor> ns3::FlowMonitorHelper::InstallAll() [member function]
-    cls.add_method('InstallAll', 
-                   'ns3::Ptr< ns3::FlowMonitor >', 
-                   [])
-    ## flow-monitor-helper.h: void ns3::FlowMonitorHelper::SetMonitorAttribute(std::string n1, ns3::AttributeValue const & v1) [member function]
-    cls.add_method('SetMonitorAttribute', 
-                   'void', 
-                   [param('std::string', 'n1'), param('ns3::AttributeValue const &', 'v1')])
-    return
-
-def register_Ns3GlobalRouteManager_methods(root_module, cls):
-    ## global-route-manager.h: static uint32_t ns3::GlobalRouteManager::AllocateRouterId() [member function]
-    cls.add_method('AllocateRouterId', 
-                   'uint32_t', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::DeleteGlobalRoutes() [member function]
-    cls.add_method('DeleteGlobalRoutes', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::BuildGlobalRoutingDatabase() [member function]
-    cls.add_method('BuildGlobalRoutingDatabase', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## global-route-manager.h: static void ns3::GlobalRouteManager::InitializeRoutes() [member function]
-    cls.add_method('InitializeRoutes', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3GlobalRoutingLSA_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA::SPFStatus status, ns3::Ipv4Address linkStateId, ns3::Ipv4Address advertisingRtr) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLSA::SPFStatus', 'status'), param('ns3::Ipv4Address', 'linkStateId'), param('ns3::Ipv4Address', 'advertisingRtr')])
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::GlobalRoutingLSA(ns3::GlobalRoutingLSA & lsa) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLSA &', 'lsa')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddAttachedRouter(ns3::Ipv4Address addr) [member function]
-    cls.add_method('AddAttachedRouter', 
-                   'uint32_t', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::AddLinkRecord(ns3::GlobalRoutingLinkRecord * lr) [member function]
-    cls.add_method('AddLinkRecord', 
-                   'uint32_t', 
-                   [param('ns3::GlobalRoutingLinkRecord *', 'lr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::ClearLinkRecords() [member function]
-    cls.add_method('ClearLinkRecords', 
-                   'void', 
-                   [])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::CopyLinkRecords(ns3::GlobalRoutingLSA const & lsa) [member function]
-    cls.add_method('CopyLinkRecords', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA const &', 'lsa')])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAdvertisingRouter() const [member function]
-    cls.add_method('GetAdvertisingRouter', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetAttachedRouter(uint32_t n) const [member function]
-    cls.add_method('GetAttachedRouter', 
-                   'ns3::Ipv4Address', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::LSType ns3::GlobalRoutingLSA::GetLSType() const [member function]
-    cls.add_method('GetLSType', 
-                   'ns3::GlobalRoutingLSA::LSType', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord * ns3::GlobalRoutingLSA::GetLinkRecord(uint32_t n) const [member function]
-    cls.add_method('GetLinkRecord', 
-                   'ns3::GlobalRoutingLinkRecord *', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLSA::GetLinkStateId() const [member function]
-    cls.add_method('GetLinkStateId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNAttachedRouters() const [member function]
-    cls.add_method('GetNAttachedRouters', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRoutingLSA::GetNLinkRecords() const [member function]
-    cls.add_method('GetNLinkRecords', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Mask ns3::GlobalRoutingLSA::GetNetworkLSANetworkMask() const [member function]
-    cls.add_method('GetNetworkLSANetworkMask', 
-                   'ns3::Ipv4Mask', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ptr<ns3::Node> ns3::GlobalRoutingLSA::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLSA::SPFStatus ns3::GlobalRoutingLSA::GetStatus() const [member function]
-    cls.add_method('GetStatus', 
-                   'ns3::GlobalRoutingLSA::SPFStatus', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: bool ns3::GlobalRoutingLSA::IsEmpty() const [member function]
-    cls.add_method('IsEmpty', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetAdvertisingRouter(ns3::Ipv4Address rtr) [member function]
-    cls.add_method('SetAdvertisingRouter', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'rtr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLSType(ns3::GlobalRoutingLSA::LSType typ) [member function]
-    cls.add_method('SetLSType', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA::LSType', 'typ')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetLinkStateId(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkStateId', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNetworkLSANetworkMask(ns3::Ipv4Mask mask) [member function]
-    cls.add_method('SetNetworkLSANetworkMask', 
-                   'void', 
-                   [param('ns3::Ipv4Mask', 'mask')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLSA::SetStatus(ns3::GlobalRoutingLSA::SPFStatus status) [member function]
-    cls.add_method('SetStatus', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLSA::SPFStatus', 'status')])
-    return
-
-def register_Ns3GlobalRoutingLinkRecord_methods(root_module, cls):
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord const &', 'arg0')])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::GlobalRoutingLinkRecord(ns3::GlobalRoutingLinkRecord::LinkType linkType, ns3::Ipv4Address linkId, ns3::Ipv4Address linkData, uint16_t metric) [constructor]
-    cls.add_constructor([param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType'), param('ns3::Ipv4Address', 'linkId'), param('ns3::Ipv4Address', 'linkData'), param('uint16_t', 'metric')])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkData() const [member function]
-    cls.add_method('GetLinkData', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRoutingLinkRecord::GetLinkId() const [member function]
-    cls.add_method('GetLinkId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: ns3::GlobalRoutingLinkRecord::LinkType ns3::GlobalRoutingLinkRecord::GetLinkType() const [member function]
-    cls.add_method('GetLinkType', 
-                   'ns3::GlobalRoutingLinkRecord::LinkType', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint16_t ns3::GlobalRoutingLinkRecord::GetMetric() const [member function]
-    cls.add_method('GetMetric', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkData(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkData', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkId(ns3::Ipv4Address addr) [member function]
-    cls.add_method('SetLinkId', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'addr')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetLinkType(ns3::GlobalRoutingLinkRecord::LinkType linkType) [member function]
-    cls.add_method('SetLinkType', 
-                   'void', 
-                   [param('ns3::GlobalRoutingLinkRecord::LinkType', 'linkType')])
-    ## global-router-interface.h: void ns3::GlobalRoutingLinkRecord::SetMetric(uint16_t metric) [member function]
-    cls.add_method('SetMetric', 
-                   'void', 
-                   [param('uint16_t', 'metric')])
-    return
-
-def register_Ns3Histogram_methods(root_module, cls):
-    ## histogram.h: ns3::Histogram::Histogram(ns3::Histogram const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Histogram const &', 'arg0')])
-    ## histogram.h: ns3::Histogram::Histogram(double binWidth) [constructor]
-    cls.add_constructor([param('double', 'binWidth')])
-    ## histogram.h: ns3::Histogram::Histogram() [constructor]
-    cls.add_constructor([])
-    ## histogram.h: void ns3::Histogram::AddValue(double value) [member function]
-    cls.add_method('AddValue', 
-                   'void', 
-                   [param('double', 'value')])
-    ## histogram.h: uint32_t ns3::Histogram::GetBinCount(uint32_t index) [member function]
-    cls.add_method('GetBinCount', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinEnd(uint32_t index) [member function]
-    cls.add_method('GetBinEnd', 
-                   'double', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinStart(uint32_t index) [member function]
-    cls.add_method('GetBinStart', 
-                   'double', 
-                   [param('uint32_t', 'index')])
-    ## histogram.h: double ns3::Histogram::GetBinWidth(uint32_t index) const [member function]
-    cls.add_method('GetBinWidth', 
-                   'double', 
-                   [param('uint32_t', 'index')], 
-                   is_const=True)
-    ## histogram.h: uint32_t ns3::Histogram::GetNBins() const [member function]
-    cls.add_method('GetNBins', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## histogram.h: void ns3::Histogram::SerializeToXmlStream(std::ostream & os, int indent, std::string elementName) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('std::string', 'elementName')], 
-                   is_const=True)
-    ## histogram.h: void ns3::Histogram::SetDefaultBinWidth(double binWidth) [member function]
-    cls.add_method('SetDefaultBinWidth', 
-                   'void', 
-                   [param('double', 'binWidth')])
-    return
-
-def register_Ns3Ipv4MulticastRoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const &', 'route')])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4MulticastRoutingTableEntry::Ipv4MulticastRoutingTableEntry(ns3::Ipv4MulticastRoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv4MulticastRoutingTableEntry const *', 'route')])
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('CreateMulticastRoute', 
-                   'ns3::Ipv4MulticastRoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetGroup() const [member function]
-    cls.add_method('GetGroup', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetInputInterface() const [member function]
-    cls.add_method('GetInputInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
-    cls.add_method('GetNOutputInterfaces', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4MulticastRoutingTableEntry::GetOrigin() const [member function]
-    cls.add_method('GetOrigin', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
-    cls.add_method('GetOutputInterface', 
-                   'uint32_t', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv4MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
-    cls.add_method('GetOutputInterfaces', 
-                   'std::vector< unsigned int >', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv4RoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const &', 'route')])
-    ## ipv4-routing-table-entry.h: ns3::Ipv4RoutingTableEntry::Ipv4RoutingTableEntry(ns3::Ipv4RoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv4RoutingTableEntry const *', 'route')])
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateDefaultRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: static ns3::Ipv4RoutingTableEntry ns3::Ipv4RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetDestNetwork() const [member function]
-    cls.add_method('GetDestNetwork', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Mask ns3::Ipv4RoutingTableEntry::GetDestNetworkMask() const [member function]
-    cls.add_method('GetDestNetworkMask', 
-                   'ns3::Ipv4Mask', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: ns3::Ipv4Address ns3::Ipv4RoutingTableEntry::GetGateway() const [member function]
-    cls.add_method('GetGateway', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: uint32_t ns3::Ipv4RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsDefault() const [member function]
-    cls.add_method('IsDefault', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsGateway() const [member function]
-    cls.add_method('IsGateway', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsHost() const [member function]
-    cls.add_method('IsHost', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv4-routing-table-entry.h: bool ns3::Ipv4RoutingTableEntry::IsNetwork() const [member function]
-    cls.add_method('IsNetwork', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv4StaticRoutingHelper_methods(root_module, cls):
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper::Ipv4StaticRoutingHelper(ns3::Ipv4StaticRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4StaticRoutingHelper const &', 'arg0')])
-    ## ipv4-static-routing-helper.h: ns3::Ipv4StaticRoutingHelper * ns3::Ipv4StaticRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4StaticRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing-helper.h: ns3::Ptr<ns3::Ipv4StaticRouting> ns3::Ipv4StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv4> ipv4) const [member function]
-    cls.add_method('GetStaticRouting', 
-                   'ns3::Ptr< ns3::Ipv4StaticRouting >', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_const=True)
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv4Address source, ns3::Ipv4Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv4Address source, ns3::Ipv4Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ptr<ns3::NetDevice> nd) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(ns3::Ptr<ns3::Node> n, std::string ndName) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('std::string', 'ndName')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, ns3::Ptr<ns3::NetDevice> nd) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
-    ## ipv4-static-routing-helper.h: void ns3::Ipv4StaticRoutingHelper::SetDefaultMulticastRoute(std::string nName, std::string ndName) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('std::string', 'ndName')])
-    return
-
-def register_Ns3Ipv6MulticastRoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const &', 'route')])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6MulticastRoutingTableEntry::Ipv6MulticastRoutingTableEntry(ns3::Ipv6MulticastRoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv6MulticastRoutingTableEntry const *', 'route')])
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6MulticastRoutingTableEntry::CreateMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('CreateMulticastRoute', 
-                   'ns3::Ipv6MulticastRoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetGroup() const [member function]
-    cls.add_method('GetGroup', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetInputInterface() const [member function]
-    cls.add_method('GetInputInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetNOutputInterfaces() const [member function]
-    cls.add_method('GetNOutputInterfaces', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6MulticastRoutingTableEntry::GetOrigin() const [member function]
-    cls.add_method('GetOrigin', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterface(uint32_t n) const [member function]
-    cls.add_method('GetOutputInterface', 
-                   'uint32_t', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: std::vector<unsigned int, std::allocator<unsigned int> > ns3::Ipv6MulticastRoutingTableEntry::GetOutputInterfaces() const [member function]
-    cls.add_method('GetOutputInterfaces', 
-                   'std::vector< unsigned int >', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3Ipv6RoutingTableEntry_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const & route) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const &', 'route')])
-    ## ipv6-routing-table-entry.h: ns3::Ipv6RoutingTableEntry::Ipv6RoutingTableEntry(ns3::Ipv6RoutingTableEntry const * route) [constructor]
-    cls.add_constructor([param('ns3::Ipv6RoutingTableEntry const *', 'route')])
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateDefaultRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address()) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address()')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateHostRouteTo(ns3::Ipv6Address dest, uint32_t interface) [member function]
-    cls.add_method('CreateHostRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: static ns3::Ipv6RoutingTableEntry ns3::Ipv6RoutingTableEntry::CreateNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface) [member function]
-    cls.add_method('CreateNetworkRouteTo', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface')], 
-                   is_static=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetDestNetwork() const [member function]
-    cls.add_method('GetDestNetwork', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Prefix ns3::Ipv6RoutingTableEntry::GetDestNetworkPrefix() const [member function]
-    cls.add_method('GetDestNetworkPrefix', 
-                   'ns3::Ipv6Prefix', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetGateway() const [member function]
-    cls.add_method('GetGateway', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: uint32_t ns3::Ipv6RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: ns3::Ipv6Address ns3::Ipv6RoutingTableEntry::GetPrefixToUse() const [member function]
-    cls.add_method('GetPrefixToUse', 
-                   'ns3::Ipv6Address', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsDefault() const [member function]
-    cls.add_method('IsDefault', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsGateway() const [member function]
-    cls.add_method('IsGateway', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsHost() const [member function]
-    cls.add_method('IsHost', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: bool ns3::Ipv6RoutingTableEntry::IsNetwork() const [member function]
-    cls.add_method('IsNetwork', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## ipv6-routing-table-entry.h: void ns3::Ipv6RoutingTableEntry::SetPrefixToUse(ns3::Ipv6Address prefix) [member function]
-    cls.add_method('SetPrefixToUse', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'prefix')])
-    return
-
-def register_Ns3Ipv6StaticRoutingHelper_methods(root_module, cls):
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper::Ipv6StaticRoutingHelper(ns3::Ipv6StaticRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6StaticRoutingHelper const &', 'arg0')])
-    ## ipv6-static-routing-helper.h: ns3::Ipv6StaticRoutingHelper * ns3::Ipv6StaticRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv6StaticRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6StaticRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-static-routing-helper.h: ns3::Ptr<ns3::Ipv6StaticRouting> ns3::Ipv6StaticRoutingHelper::GetStaticRouting(ns3::Ptr<ns3::Ipv6> ipv6) const [member function]
-    cls.add_method('GetStaticRouting', 
-                   'ns3::Ptr< ns3::Ipv6StaticRouting >', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_const=True)
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string n, ns3::Ipv6Address source, ns3::Ipv6Address group, ns3::Ptr<ns3::NetDevice> input, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('ns3::Ptr< ns3::NetDevice >', 'input'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(ns3::Ptr<ns3::Node> n, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'n'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    ## ipv6-static-routing-helper.h: void ns3::Ipv6StaticRoutingHelper::AddMulticastRoute(std::string nName, ns3::Ipv6Address source, ns3::Ipv6Address group, std::string inputName, ns3::NetDeviceContainer output) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('std::string', 'nName'), param('ns3::Ipv6Address', 'source'), param('ns3::Ipv6Address', 'group'), param('std::string', 'inputName'), param('ns3::NetDeviceContainer', 'output')])
-    return
-
-def register_Ns3LteHelper_methods(root_module, cls):
-    ## lte-helper.h: ns3::LteHelper::LteHelper(ns3::LteHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteHelper const &', 'arg0')])
-    ## lte-helper.h: ns3::LteHelper::LteHelper() [constructor]
-    cls.add_constructor([])
-    ## lte-helper.h: void ns3::LteHelper::AddDownlinkChannelRealization(ns3::Ptr<ns3::MobilityModel> enbMobility, ns3::Ptr<ns3::MobilityModel> ueMobility, ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('AddDownlinkChannelRealization', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel >', 'ueMobility'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## lte-helper.h: void ns3::LteHelper::AddMobility(ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::MobilityModel> m) [member function]
-    cls.add_method('AddMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::MobilityModel >', 'm')])
-    ## lte-helper.h: void ns3::LteHelper::EnableLogComponents() [member function]
-    cls.add_method('EnableLogComponents', 
-                   'void', 
-                   [])
-    ## lte-helper.h: ns3::NetDeviceContainer ns3::LteHelper::Install(ns3::NodeContainer c, ns3::LteHelper::NetDeviceType type) [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c'), param('ns3::LteHelper::NetDeviceType', 'type')])
-    ## lte-helper.h: void ns3::LteHelper::RegisterUeToTheEnb(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('RegisterUeToTheEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    return
-
-def register_Ns3LteSpectrumValueHelper_methods(root_module, cls):
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper() [constructor]
-    cls.add_constructor([])
-    ## lte-spectrum-value-helper.h: ns3::LteSpectrumValueHelper::LteSpectrumValueHelper(ns3::LteSpectrumValueHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteSpectrumValueHelper const &', 'arg0')])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkNoisePowerSpectralDensity() [member function]
-    cls.add_method('CreateDownlinkNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateDownlinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
-    cls.add_method('CreateDownlinkTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkNoisePowerSpectralDensity() [member function]
-    cls.add_method('CreateUplinkNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [])
-    ## lte-spectrum-value-helper.h: ns3::Ptr<ns3::SpectrumValue> ns3::LteSpectrumValueHelper::CreateUplinkTxPowerSpectralDensity(double powerTx, std::vector<int, std::allocator<int> > channels) [member function]
-    cls.add_method('CreateUplinkTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('double', 'powerTx'), param('std::vector< int >', 'channels')])
-    return
-
-def register_Ns3OlsrHelper_methods(root_module, cls):
-    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper() [constructor]
-    cls.add_constructor([])
-    ## olsr-helper.h: ns3::OlsrHelper::OlsrHelper(ns3::OlsrHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::OlsrHelper const &', 'arg0')])
-    ## olsr-helper.h: ns3::OlsrHelper * ns3::OlsrHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::OlsrHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-helper.h: void ns3::OlsrHelper::ExcludeInterface(ns3::Ptr<ns3::Node> node, uint32_t interface) [member function]
-    cls.add_method('ExcludeInterface', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'interface')])
-    ## olsr-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::OlsrHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-helper.h: void ns3::OlsrHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
-    return
-
-def register_Ns3OlsrState_methods(root_module, cls):
-    ## olsr-state.h: ns3::OlsrState::OlsrState(ns3::OlsrState const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::OlsrState const &', 'arg0')])
-    ## olsr-state.h: ns3::OlsrState::OlsrState() [constructor]
-    cls.add_constructor([])
-    ## olsr-state.h: void ns3::OlsrState::EraseAssociation(ns3::olsr::Association const & tuple) [member function]
-    cls.add_method('EraseAssociation', 
-                   'void', 
-                   [param('ns3::olsr::Association const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
-    cls.add_method('EraseAssociationTuple', 
-                   'void', 
-                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
-    cls.add_method('EraseDuplicateTuple', 
-                   'void', 
-                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
-    cls.add_method('EraseIfaceAssocTuple', 
-                   'void', 
-                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
-    cls.add_method('EraseLinkTuple', 
-                   'void', 
-                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
-    cls.add_method('EraseMprSelectorTuple', 
-                   'void', 
-                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseMprSelectorTuples(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('EraseMprSelectorTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::olsr::NeighborTuple const & neighborTuple) [member function]
-    cls.add_method('EraseNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::NeighborTuple const &', 'neighborTuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('EraseNeighborTuple', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: void ns3::OlsrState::EraseOlderTopologyTuples(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
-    cls.add_method('EraseOlderTopologyTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
-    cls.add_method('EraseTopologyTuple', 
-                   'void', 
-                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
-    cls.add_method('EraseTwoHopNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor) [member function]
-    cls.add_method('EraseTwoHopNeighborTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'neighbor')])
-    ## olsr-state.h: void ns3::OlsrState::EraseTwoHopNeighborTuples(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
-    cls.add_method('EraseTwoHopNeighborTuples', 
-                   'void', 
-                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
-    ## olsr-state.h: ns3::olsr::AssociationTuple * ns3::OlsrState::FindAssociationTuple(ns3::Ipv4Address const & gatewayAddr, ns3::Ipv4Address const & networkAddr, ns3::Ipv4Mask const & netmask) [member function]
-    cls.add_method('FindAssociationTuple', 
-                   'ns3::olsr::AssociationTuple *', 
-                   [param('ns3::Ipv4Address const &', 'gatewayAddr'), param('ns3::Ipv4Address const &', 'networkAddr'), param('ns3::Ipv4Mask const &', 'netmask')])
-    ## olsr-state.h: ns3::olsr::DuplicateTuple * ns3::OlsrState::FindDuplicateTuple(ns3::Ipv4Address const & address, uint16_t sequenceNumber) [member function]
-    cls.add_method('FindDuplicateTuple', 
-                   'ns3::olsr::DuplicateTuple *', 
-                   [param('ns3::Ipv4Address const &', 'address'), param('uint16_t', 'sequenceNumber')])
-    ## olsr-state.h: ns3::olsr::IfaceAssocTuple * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
-    cls.add_method('FindIfaceAssocTuple', 
-                   'ns3::olsr::IfaceAssocTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
-    ## olsr-state.h: ns3::olsr::IfaceAssocTuple const * ns3::OlsrState::FindIfaceAssocTuple(ns3::Ipv4Address const & ifaceAddr) const [member function]
-    cls.add_method('FindIfaceAssocTuple', 
-                   'ns3::olsr::IfaceAssocTuple const *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindLinkTuple(ns3::Ipv4Address const & ifaceAddr) [member function]
-    cls.add_method('FindLinkTuple', 
-                   'ns3::olsr::LinkTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr')])
-    ## olsr-state.h: bool ns3::OlsrState::FindMprAddress(ns3::Ipv4Address const & address) [member function]
-    cls.add_method('FindMprAddress', 
-                   'bool', 
-                   [param('ns3::Ipv4Address const &', 'address')])
-    ## olsr-state.h: ns3::olsr::MprSelectorTuple * ns3::OlsrState::FindMprSelectorTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('FindMprSelectorTuple', 
-                   'ns3::olsr::MprSelectorTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: std::vector<ns3::Ipv4Address, std::allocator<ns3::Ipv4Address> > ns3::OlsrState::FindNeighborInterfaces(ns3::Ipv4Address const & neighborMainAddr) const [member function]
-    cls.add_method('FindNeighborInterfaces', 
-                   'std::vector< ns3::Ipv4Address >', 
-                   [param('ns3::Ipv4Address const &', 'neighborMainAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr) [member function]
-    cls.add_method('FindNeighborTuple', 
-                   'ns3::olsr::NeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')])
-    ## olsr-state.h: ns3::olsr::NeighborTuple * ns3::OlsrState::FindNeighborTuple(ns3::Ipv4Address const & mainAddr, uint8_t willingness) [member function]
-    cls.add_method('FindNeighborTuple', 
-                   'ns3::olsr::NeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr'), param('uint8_t', 'willingness')])
-    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindNewerTopologyTuple(ns3::Ipv4Address const & lastAddr, uint16_t ansn) [member function]
-    cls.add_method('FindNewerTopologyTuple', 
-                   'ns3::olsr::TopologyTuple *', 
-                   [param('ns3::Ipv4Address const &', 'lastAddr'), param('uint16_t', 'ansn')])
-    ## olsr-state.h: ns3::olsr::LinkTuple * ns3::OlsrState::FindSymLinkTuple(ns3::Ipv4Address const & ifaceAddr, ns3::Time time) [member function]
-    cls.add_method('FindSymLinkTuple', 
-                   'ns3::olsr::LinkTuple *', 
-                   [param('ns3::Ipv4Address const &', 'ifaceAddr'), param('ns3::Time', 'time')])
-    ## olsr-state.h: ns3::olsr::NeighborTuple const * ns3::OlsrState::FindSymNeighborTuple(ns3::Ipv4Address const & mainAddr) const [member function]
-    cls.add_method('FindSymNeighborTuple', 
-                   'ns3::olsr::NeighborTuple const *', 
-                   [param('ns3::Ipv4Address const &', 'mainAddr')], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TopologyTuple * ns3::OlsrState::FindTopologyTuple(ns3::Ipv4Address const & destAddr, ns3::Ipv4Address const & lastAddr) [member function]
-    cls.add_method('FindTopologyTuple', 
-                   'ns3::olsr::TopologyTuple *', 
-                   [param('ns3::Ipv4Address const &', 'destAddr'), param('ns3::Ipv4Address const &', 'lastAddr')])
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborTuple * ns3::OlsrState::FindTwoHopNeighborTuple(ns3::Ipv4Address const & neighbor, ns3::Ipv4Address const & twoHopNeighbor) [member function]
-    cls.add_method('FindTwoHopNeighborTuple', 
-                   'ns3::olsr::TwoHopNeighborTuple *', 
-                   [param('ns3::Ipv4Address const &', 'neighbor'), param('ns3::Ipv4Address const &', 'twoHopNeighbor')])
-    ## olsr-state.h: ns3::olsr::AssociationSet const & ns3::OlsrState::GetAssociationSet() const [member function]
-    cls.add_method('GetAssociationSet', 
-                   'ns3::olsr::AssociationSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::Associations const & ns3::OlsrState::GetAssociations() const [member function]
-    cls.add_method('GetAssociations', 
-                   'ns3::olsr::Associations const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::IfaceAssocSet const & ns3::OlsrState::GetIfaceAssocSet() const [member function]
-    cls.add_method('GetIfaceAssocSet', 
-                   'ns3::olsr::IfaceAssocSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::IfaceAssocSet & ns3::OlsrState::GetIfaceAssocSetMutable() [member function]
-    cls.add_method('GetIfaceAssocSetMutable', 
-                   'ns3::olsr::IfaceAssocSet &', 
-                   [])
-    ## olsr-state.h: ns3::olsr::LinkSet const & ns3::OlsrState::GetLinks() const [member function]
-    cls.add_method('GetLinks', 
-                   'ns3::olsr::LinkSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::MprSelectorSet const & ns3::OlsrState::GetMprSelectors() const [member function]
-    cls.add_method('GetMprSelectors', 
-                   'ns3::olsr::MprSelectorSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::MprSet ns3::OlsrState::GetMprSet() const [member function]
-    cls.add_method('GetMprSet', 
-                   'ns3::olsr::MprSet', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborSet const & ns3::OlsrState::GetNeighbors() const [member function]
-    cls.add_method('GetNeighbors', 
-                   'ns3::olsr::NeighborSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::NeighborSet & ns3::OlsrState::GetNeighbors() [member function]
-    cls.add_method('GetNeighbors', 
-                   'ns3::olsr::NeighborSet &', 
-                   [])
-    ## olsr-state.h: ns3::olsr::TopologySet const & ns3::OlsrState::GetTopologySet() const [member function]
-    cls.add_method('GetTopologySet', 
-                   'ns3::olsr::TopologySet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet const & ns3::OlsrState::GetTwoHopNeighbors() const [member function]
-    cls.add_method('GetTwoHopNeighbors', 
-                   'ns3::olsr::TwoHopNeighborSet const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: ns3::olsr::TwoHopNeighborSet & ns3::OlsrState::GetTwoHopNeighbors() [member function]
-    cls.add_method('GetTwoHopNeighbors', 
-                   'ns3::olsr::TwoHopNeighborSet &', 
-                   [])
-    ## olsr-state.h: void ns3::OlsrState::InsertAssociation(ns3::olsr::Association const & tuple) [member function]
-    cls.add_method('InsertAssociation', 
-                   'void', 
-                   [param('ns3::olsr::Association const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertAssociationTuple(ns3::olsr::AssociationTuple const & tuple) [member function]
-    cls.add_method('InsertAssociationTuple', 
-                   'void', 
-                   [param('ns3::olsr::AssociationTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertDuplicateTuple(ns3::olsr::DuplicateTuple const & tuple) [member function]
-    cls.add_method('InsertDuplicateTuple', 
-                   'void', 
-                   [param('ns3::olsr::DuplicateTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertIfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & tuple) [member function]
-    cls.add_method('InsertIfaceAssocTuple', 
-                   'void', 
-                   [param('ns3::olsr::IfaceAssocTuple const &', 'tuple')])
-    ## olsr-state.h: ns3::olsr::LinkTuple & ns3::OlsrState::InsertLinkTuple(ns3::olsr::LinkTuple const & tuple) [member function]
-    cls.add_method('InsertLinkTuple', 
-                   'ns3::olsr::LinkTuple &', 
-                   [param('ns3::olsr::LinkTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertMprSelectorTuple(ns3::olsr::MprSelectorTuple const & tuple) [member function]
-    cls.add_method('InsertMprSelectorTuple', 
-                   'void', 
-                   [param('ns3::olsr::MprSelectorTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertNeighborTuple(ns3::olsr::NeighborTuple const & tuple) [member function]
-    cls.add_method('InsertNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::NeighborTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertTopologyTuple(ns3::olsr::TopologyTuple const & tuple) [member function]
-    cls.add_method('InsertTopologyTuple', 
-                   'void', 
-                   [param('ns3::olsr::TopologyTuple const &', 'tuple')])
-    ## olsr-state.h: void ns3::OlsrState::InsertTwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & tuple) [member function]
-    cls.add_method('InsertTwoHopNeighborTuple', 
-                   'void', 
-                   [param('ns3::olsr::TwoHopNeighborTuple const &', 'tuple')])
-    ## olsr-state.h: std::string ns3::OlsrState::PrintMprSelectorSet() const [member function]
-    cls.add_method('PrintMprSelectorSet', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## olsr-state.h: void ns3::OlsrState::SetMprSet(ns3::olsr::MprSet mprSet) [member function]
-    cls.add_method('SetMprSet', 
-                   'void', 
-                   [param('ns3::olsr::MprSet', 'mprSet')])
-    return
-
-def register_Ns3PyViz_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PyViz(ns3::PyViz const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PyViz() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample ns3::PyViz::GetLastPackets(uint32_t nodeId) const [member function]
-    cls.add_method('GetLastPackets', 
-                   'ns3::PyViz::LastPacketsSample', 
-                   [param('uint32_t', 'nodeId')], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::NodeStatistics,std::allocator<ns3::PyViz::NodeStatistics> > ns3::PyViz::GetNodesStatistics() const [member function]
-    cls.add_method('GetNodesStatistics', 
-                   'std::vector< ns3::PyViz::NodeStatistics >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::PacketDropSample,std::allocator<ns3::PyViz::PacketDropSample> > ns3::PyViz::GetPacketDropSamples() const [member function]
-    cls.add_method('GetPacketDropSamples', 
-                   'std::vector< ns3::PyViz::PacketDropSample >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<std::string, std::allocator<std::string> > ns3::PyViz::GetPauseMessages() const [member function]
-    cls.add_method('GetPauseMessages', 
-                   'std::vector< std::string >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: std::vector<ns3::PyViz::TransmissionSample,std::allocator<ns3::PyViz::TransmissionSample> > ns3::PyViz::GetTransmissionSamples() const [member function]
-    cls.add_method('GetTransmissionSamples', 
-                   'std::vector< ns3::PyViz::TransmissionSample >', 
-                   [], 
-                   is_const=True)
-    ## pyviz.h: static void ns3::PyViz::LineClipping(double boundsX1, double boundsY1, double boundsX2, double boundsY2, double & lineX1, double & lineY1, double & lineX2, double & lineY2) [member function]
-    cls.add_method('LineClipping', 
-                   'void', 
-                   [param('double', 'boundsX1'), param('double', 'boundsY1'), param('double', 'boundsX2'), param('double', 'boundsY2'), param('double &', 'lineX1', direction=3), param('double &', 'lineY1', direction=3), param('double &', 'lineX2', direction=3), param('double &', 'lineY2', direction=3)], 
-                   is_static=True)
-    ## pyviz.h: static void ns3::PyViz::Pause(std::string const & message) [member function]
-    cls.add_method('Pause', 
-                   'void', 
-                   [param('std::string const &', 'message')], 
-                   is_static=True)
-    ## pyviz.h: void ns3::PyViz::RegisterCsmaLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterCsmaLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::RegisterDropTracePath(std::string const & tracePath) [member function]
-    cls.add_method('RegisterDropTracePath', 
-                   'void', 
-                   [param('std::string const &', 'tracePath')])
-    ## pyviz.h: void ns3::PyViz::RegisterPointToPointLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterPointToPointLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::RegisterWifiLikeDevice(std::string const & deviceTypeName) [member function]
-    cls.add_method('RegisterWifiLikeDevice', 
-                   'void', 
-                   [param('std::string const &', 'deviceTypeName')])
-    ## pyviz.h: void ns3::PyViz::SetNodesOfInterest(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > nodes) [member function]
-    cls.add_method('SetNodesOfInterest', 
-                   'void', 
-                   [param('std::set< unsigned int >', 'nodes')])
-    ## pyviz.h: void ns3::PyViz::SetPacketCaptureOptions(uint32_t nodeId, ns3::PyViz::PacketCaptureOptions options) [member function]
-    cls.add_method('SetPacketCaptureOptions', 
-                   'void', 
-                   [param('uint32_t', 'nodeId'), param('ns3::PyViz::PacketCaptureOptions', 'options')])
-    ## pyviz.h: void ns3::PyViz::SimulatorRunUntil(ns3::Time time) [member function]
-    cls.add_method('SimulatorRunUntil', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    return
-
-def register_Ns3PyVizLastPacketsSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::LastPacketsSample(ns3::PyViz::LastPacketsSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::LastPacketsSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastDroppedPackets [variable]
-    cls.add_instance_attribute('lastDroppedPackets', 'std::vector< ns3::PyViz::PacketSample >', is_const=False)
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastReceivedPackets [variable]
-    cls.add_instance_attribute('lastReceivedPackets', 'std::vector< ns3::PyViz::RxPacketSample >', is_const=False)
-    ## pyviz.h: ns3::PyViz::LastPacketsSample::lastTransmittedPackets [variable]
-    cls.add_instance_attribute('lastTransmittedPackets', 'std::vector< ns3::PyViz::TxPacketSample >', is_const=False)
-    return
-
-def register_Ns3PyVizNetDeviceStatistics_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics(ns3::PyViz::NetDeviceStatistics const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::NetDeviceStatistics const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::NetDeviceStatistics() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedBytes [variable]
-    cls.add_instance_attribute('receivedBytes', 'uint64_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::receivedPackets [variable]
-    cls.add_instance_attribute('receivedPackets', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedBytes [variable]
-    cls.add_instance_attribute('transmittedBytes', 'uint64_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NetDeviceStatistics::transmittedPackets [variable]
-    cls.add_instance_attribute('transmittedPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3PyVizNodeStatistics_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::NodeStatistics::NodeStatistics(ns3::PyViz::NodeStatistics const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::NodeStatistics const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::NodeStatistics::nodeId [variable]
-    cls.add_instance_attribute('nodeId', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::NodeStatistics::statistics [variable]
-    cls.add_instance_attribute('statistics', 'std::vector< ns3::PyViz::NetDeviceStatistics >', is_const=False)
-    return
-
-def register_Ns3PyVizPacketCaptureOptions_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::PacketCaptureOptions(ns3::PyViz::PacketCaptureOptions const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketCaptureOptions const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::headers [variable]
-    cls.add_instance_attribute('headers', 'std::set< ns3::TypeId >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::mode [variable]
-    cls.add_instance_attribute('mode', 'ns3::PyViz::PacketCaptureMode', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketCaptureOptions::numLastPackets [variable]
-    cls.add_instance_attribute('numLastPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3PyVizPacketDropSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketDropSample::PacketDropSample(ns3::PyViz::PacketDropSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketDropSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketDropSample::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketDropSample::transmitter [variable]
-    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
-    return
-
-def register_Ns3PyVizPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::PacketSample::PacketSample(ns3::PyViz::PacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::PacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::PacketSample::device [variable]
-    cls.add_instance_attribute('device', 'ns3::Ptr< ns3::NetDevice >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketSample::packet [variable]
-    cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False)
-    ## pyviz.h: ns3::PyViz::PacketSample::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3PyVizRxPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::RxPacketSample::RxPacketSample(ns3::PyViz::RxPacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::RxPacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::RxPacketSample::from [variable]
-    cls.add_instance_attribute('from', 'ns3::Mac48Address', is_const=False)
-    return
-
-def register_Ns3PyVizTransmissionSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::TransmissionSample::TransmissionSample(ns3::PyViz::TransmissionSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::TransmissionSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::TransmissionSample::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint32_t', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::channel [variable]
-    cls.add_instance_attribute('channel', 'ns3::Ptr< ns3::Channel >', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::receiver [variable]
-    cls.add_instance_attribute('receiver', 'ns3::Ptr< ns3::Node >', is_const=False)
-    ## pyviz.h: ns3::PyViz::TransmissionSample::transmitter [variable]
-    cls.add_instance_attribute('transmitter', 'ns3::Ptr< ns3::Node >', is_const=False)
-    return
-
-def register_Ns3PyVizTxPacketSample_methods(root_module, cls):
-    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample() [constructor]
-    cls.add_constructor([])
-    ## pyviz.h: ns3::PyViz::TxPacketSample::TxPacketSample(ns3::PyViz::TxPacketSample const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PyViz::TxPacketSample const &', 'arg0')])
-    ## pyviz.h: ns3::PyViz::TxPacketSample::to [variable]
-    cls.add_instance_attribute('to', 'ns3::Mac48Address', is_const=False)
-    return
-
-def register_Ns3Reservation_methods(root_module, cls):
-    ## uan-mac-rc.h: ns3::Reservation::Reservation(ns3::Reservation const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Reservation const &', 'arg0')])
-    ## uan-mac-rc.h: ns3::Reservation::Reservation() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc.h: ns3::Reservation::Reservation(std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > & list, uint8_t frameNo, uint32_t maxPkts=0) [constructor]
-    cls.add_constructor([param('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > &', 'list'), param('uint8_t', 'frameNo'), param('uint32_t', 'maxPkts', default_value='0')])
-    ## uan-mac-rc.h: void ns3::Reservation::AddTimestamp(ns3::Time t) [member function]
-    cls.add_method('AddTimestamp', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetLength() const [member function]
-    cls.add_method('GetLength', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint32_t ns3::Reservation::GetNoFrames() const [member function]
-    cls.add_method('GetNoFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: std::list<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress>, std::allocator<std::pair<ns3::Ptr<ns3::Packet>, ns3::UanAddress> > > const & ns3::Reservation::GetPktList() const [member function]
-    cls.add_method('GetPktList', 
-                   'std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::UanAddress > > const &', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: uint8_t ns3::Reservation::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: ns3::Time ns3::Reservation::GetTimestamp(uint8_t n) const [member function]
-    cls.add_method('GetTimestamp', 
-                   'ns3::Time', 
-                   [param('uint8_t', 'n')], 
-                   is_const=True)
-    ## uan-mac-rc.h: void ns3::Reservation::IncrementRetry() [member function]
-    cls.add_method('IncrementRetry', 
-                   'void', 
-                   [])
-    ## uan-mac-rc.h: bool ns3::Reservation::IsTransmitted() const [member function]
-    cls.add_method('IsTransmitted', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## uan-mac-rc.h: void ns3::Reservation::SetFrameNo(uint8_t fn) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'fn')])
-    ## uan-mac-rc.h: void ns3::Reservation::SetTransmitted(bool t=true) [member function]
-    cls.add_method('SetTransmitted', 
-                   'void', 
-                   [param('bool', 't', default_value='true')])
-    return
-
-def register_Ns3RvBatteryModelHelper_methods(root_module, cls):
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper(ns3::RvBatteryModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RvBatteryModelHelper const &', 'arg0')])
-    ## rv-battery-model-helper.h: ns3::RvBatteryModelHelper::RvBatteryModelHelper() [constructor]
-    cls.add_constructor([])
-    ## rv-battery-model-helper.h: void ns3::RvBatteryModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## rv-battery-model-helper.h: ns3::Ptr<ns3::EnergySource> ns3::RvBatteryModelHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3Tap_methods(root_module, cls):
-    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Tap const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Tap const &', 'arg0')])
-    ## uan-prop-model.h: ns3::Tap::Tap() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::Tap::Tap(ns3::Time delay, std::complex<double> amp) [constructor]
-    cls.add_constructor([param('ns3::Time', 'delay'), param('std::complex< double >', 'amp')])
-    ## uan-prop-model.h: std::complex<double> ns3::Tap::GetAmp() const [member function]
-    cls.add_method('GetAmp', 
-                   'std::complex< double >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Time ns3::Tap::GetDelay() const [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanAddress_methods(root_module, cls):
-    cls.add_binary_comparison_operator('!=')
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('<')
-    ## uan-address.h: ns3::UanAddress::UanAddress(ns3::UanAddress const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanAddress const &', 'arg0')])
-    ## uan-address.h: ns3::UanAddress::UanAddress() [constructor]
-    cls.add_constructor([])
-    ## uan-address.h: ns3::UanAddress::UanAddress(uint8_t addr) [constructor]
-    cls.add_constructor([param('uint8_t', 'addr')])
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::Allocate() [member function]
-    cls.add_method('Allocate', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_static=True)
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::ConvertFrom(ns3::Address const & address) [member function]
-    cls.add_method('ConvertFrom', 
-                   'ns3::UanAddress', 
-                   [param('ns3::Address const &', 'address')], 
-                   is_static=True)
-    ## uan-address.h: void ns3::UanAddress::CopyFrom(uint8_t const * pBuffer) [member function]
-    cls.add_method('CopyFrom', 
-                   'void', 
-                   [param('uint8_t const *', 'pBuffer')])
-    ## uan-address.h: void ns3::UanAddress::CopyTo(uint8_t * pBuffer) [member function]
-    cls.add_method('CopyTo', 
-                   'void', 
-                   [param('uint8_t *', 'pBuffer')])
-    ## uan-address.h: uint8_t ns3::UanAddress::GetAsInt() const [member function]
-    cls.add_method('GetAsInt', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-address.h: static ns3::UanAddress ns3::UanAddress::GetBroadcast() [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_static=True)
-    ## uan-address.h: static bool ns3::UanAddress::IsMatchingType(ns3::Address const & address) [member function]
-    cls.add_method('IsMatchingType', 
-                   'bool', 
-                   [param('ns3::Address const &', 'address')], 
-                   is_static=True)
-    return
-
-def register_Ns3UanHelper_methods(root_module, cls):
-    ## uan-helper.h: ns3::UanHelper::UanHelper(ns3::UanHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHelper const &', 'arg0')])
-    ## uan-helper.h: ns3::UanHelper::UanHelper() [constructor]
-    cls.add_constructor([])
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NetDeviceContainer d) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('ns3::NetDeviceContainer', 'd')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAscii(std::ostream & os, ns3::NodeContainer n) [member function]
-    cls.add_method('EnableAscii', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('ns3::NodeContainer', 'n')], 
-                   is_static=True)
-    ## uan-helper.h: static void ns3::UanHelper::EnableAsciiAll(std::ostream & os) [member function]
-    cls.add_method('EnableAsciiAll', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_static=True)
-    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c')], 
-                   is_const=True)
-    ## uan-helper.h: ns3::NetDeviceContainer ns3::UanHelper::Install(ns3::NodeContainer c, ns3::Ptr<ns3::UanChannel> channel) const [member function]
-    cls.add_method('Install', 
-                   'ns3::NetDeviceContainer', 
-                   [param('ns3::NodeContainer', 'c'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_const=True)
-    ## uan-helper.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanHelper::Install(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::UanChannel> channel) const [member function]
-    cls.add_method('Install', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_const=True)
-    ## uan-helper.h: void ns3::UanHelper::SetMac(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## uan-helper.h: void ns3::UanHelper::SetPhy(std::string phyType, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('std::string', 'phyType'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    ## uan-helper.h: void ns3::UanHelper::SetTransducer(std::string type, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('std::string', 'type'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')])
-    return
-
-def register_Ns3UanModesList_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-tx-mode.h: ns3::UanModesList::UanModesList(ns3::UanModesList const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesList const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanModesList::UanModesList() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: void ns3::UanModesList::AppendMode(ns3::UanTxMode mode) [member function]
-    cls.add_method('AppendMode', 
-                   'void', 
-                   [param('ns3::UanTxMode', 'mode')])
-    ## uan-tx-mode.h: void ns3::UanModesList::DeleteMode(uint32_t num) [member function]
-    cls.add_method('DeleteMode', 
-                   'void', 
-                   [param('uint32_t', 'num')])
-    ## uan-tx-mode.h: uint32_t ns3::UanModesList::GetNModes() const [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPacketArrival_methods(root_module, cls):
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::UanPacketArrival const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPacketArrival const &', 'arg0')])
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer.h: ns3::UanPacketArrival::UanPacketArrival(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp, ns3::Time arrTime) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp'), param('ns3::Time', 'arrTime')])
-    ## uan-transducer.h: ns3::Time ns3::UanPacketArrival::GetArrivalTime() const [member function]
-    cls.add_method('GetArrivalTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::Ptr<ns3::Packet> ns3::UanPacketArrival::GetPacket() const [member function]
-    cls.add_method('GetPacket', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::UanPdp ns3::UanPacketArrival::GetPdp() const [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: double ns3::UanPacketArrival::GetRxPowerDb() const [member function]
-    cls.add_method('GetRxPowerDb', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-transducer.h: ns3::UanTxMode const & ns3::UanPacketArrival::GetTxMode() const [member function]
-    cls.add_method('GetTxMode', 
-                   'ns3::UanTxMode const &', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPdp_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(ns3::UanPdp const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPdp const &', 'arg0')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<ns3::Tap, std::allocator<ns3::Tap> > taps, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< ns3::Tap >', 'taps'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<std::complex<double>,std::allocator<std::complex<double> > > arrivals, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< std::complex< double > >', 'arrivals'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: ns3::UanPdp::UanPdp(std::vector<double, std::allocator<double> > arrivals, ns3::Time resolution) [constructor]
-    cls.add_constructor([param('std::vector< double >', 'arrivals'), param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: static ns3::UanPdp ns3::UanPdp::CreateImpulsePdp() [member function]
-    cls.add_method('CreateImpulsePdp', 
-                   'ns3::UanPdp', 
-                   [], 
-                   is_static=True)
-    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetBegin() const [member function]
-    cls.add_method('GetBegin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: __gnu_cxx::__normal_iterator<const ns3::Tap*,std::vector<ns3::Tap, std::allocator<ns3::Tap> > > ns3::UanPdp::GetEnd() const [member function]
-    cls.add_method('GetEnd', 
-                   '__gnu_cxx::__normal_iterator< ns3::Tap const *, std::vector< ns3::Tap > >', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: uint32_t ns3::UanPdp::GetNTaps() const [member function]
-    cls.add_method('GetNTaps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Time ns3::UanPdp::GetResolution() const [member function]
-    cls.add_method('GetResolution', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-prop-model.h: ns3::Tap const & ns3::UanPdp::GetTap(uint32_t i) const [member function]
-    cls.add_method('GetTap', 
-                   'ns3::Tap const &', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## uan-prop-model.h: void ns3::UanPdp::SetNTaps(uint32_t nTaps) [member function]
-    cls.add_method('SetNTaps', 
-                   'void', 
-                   [param('uint32_t', 'nTaps')])
-    ## uan-prop-model.h: void ns3::UanPdp::SetResolution(ns3::Time resolution) [member function]
-    cls.add_method('SetResolution', 
-                   'void', 
-                   [param('ns3::Time', 'resolution')])
-    ## uan-prop-model.h: void ns3::UanPdp::SetTap(std::complex<double> arrival, uint32_t index) [member function]
-    cls.add_method('SetTap', 
-                   'void', 
-                   [param('std::complex< double >', 'arrival'), param('uint32_t', 'index')])
-    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsC(ns3::Time begin, ns3::Time end) const [member function]
-    cls.add_method('SumTapsC', 
-                   'std::complex< double >', 
-                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
-                   is_const=True)
-    ## uan-prop-model.h: std::complex<double> ns3::UanPdp::SumTapsFromMaxC(ns3::Time delay, ns3::Time duration) const [member function]
-    cls.add_method('SumTapsFromMaxC', 
-                   'std::complex< double >', 
-                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
-                   is_const=True)
-    ## uan-prop-model.h: double ns3::UanPdp::SumTapsFromMaxNc(ns3::Time delay, ns3::Time duration) const [member function]
-    cls.add_method('SumTapsFromMaxNc', 
-                   'double', 
-                   [param('ns3::Time', 'delay'), param('ns3::Time', 'duration')], 
-                   is_const=True)
-    ## uan-prop-model.h: double ns3::UanPdp::SumTapsNc(ns3::Time begin, ns3::Time end) const [member function]
-    cls.add_method('SumTapsNc', 
-                   'double', 
-                   [param('ns3::Time', 'begin'), param('ns3::Time', 'end')], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPhyListener_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyListener::UanPhyListener(ns3::UanPhyListener const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyListener const &', 'arg0')])
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaEnd() [member function]
-    cls.add_method('NotifyCcaEnd', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyCcaStart() [member function]
-    cls.add_method('NotifyCcaStart', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyRxStart() [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyListener::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanTxMode_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode(ns3::UanTxMode const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTxMode const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanTxMode::UanTxMode() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetBandwidthHz() const [member function]
-    cls.add_method('GetBandwidthHz', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetCenterFreqHz() const [member function]
-    cls.add_method('GetCenterFreqHz', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetConstellationSize() const [member function]
-    cls.add_method('GetConstellationSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetDataRateBps() const [member function]
-    cls.add_method('GetDataRateBps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: ns3::UanTxMode::ModulationType ns3::UanTxMode::GetModType() const [member function]
-    cls.add_method('GetModType', 
-                   'ns3::UanTxMode::ModulationType', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: std::string ns3::UanTxMode::GetName() const [member function]
-    cls.add_method('GetName', 
-                   'std::string', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetPhyRateSps() const [member function]
-    cls.add_method('GetPhyRateSps', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: uint32_t ns3::UanTxMode::GetUid() const [member function]
-    cls.add_method('GetUid', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3UanTxModeFactory_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory(ns3::UanTxModeFactory const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTxModeFactory const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanTxModeFactory::UanTxModeFactory() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::CreateMode(ns3::UanTxMode::ModulationType type, uint32_t dataRateBps, uint32_t phyRateSps, uint32_t cfHz, uint32_t bwHz, uint32_t constSize, std::string name) [member function]
-    cls.add_method('CreateMode', 
-                   'ns3::UanTxMode', 
-                   [param('ns3::UanTxMode::ModulationType', 'type'), param('uint32_t', 'dataRateBps'), param('uint32_t', 'phyRateSps'), param('uint32_t', 'cfHz'), param('uint32_t', 'bwHz'), param('uint32_t', 'constSize'), param('std::string', 'name')], 
-                   is_static=True)
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(std::string name) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('std::string', 'name')], 
-                   is_static=True)
-    ## uan-tx-mode.h: static ns3::UanTxMode ns3::UanTxModeFactory::GetMode(uint32_t uid) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'uid')], 
-                   is_static=True)
-    return
-
-def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls):
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')])
-    ## wifi-radio-energy-model-helper.h: ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model-helper.h: void ns3::WifiRadioEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## wifi-radio-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::WifiRadioEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, cls):
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener(ns3::WifiRadioEnergyModelPhyListener const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModelPhyListener const &', 'arg0')])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener::WifiRadioEnergyModelPhyListener() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyMaybeCcaBusyStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(ns3::Time duration) [member function]
-    cls.add_method('NotifySwitchingStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetChangeStateCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    return
-
-def register_Ns3AcousticModemEnergyModelHelper_methods(root_module, cls):
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper(ns3::AcousticModemEnergyModelHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AcousticModemEnergyModelHelper const &', 'arg0')])
-    ## acoustic-modem-energy-model-helper.h: ns3::AcousticModemEnergyModelHelper::AcousticModemEnergyModelHelper() [constructor]
-    cls.add_constructor([])
-    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model-helper.h: void ns3::AcousticModemEnergyModelHelper::SetDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## acoustic-modem-energy-model-helper.h: ns3::Ptr<ns3::DeviceEnergyModel> ns3::AcousticModemEnergyModelHelper::DoInstall(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::EnergySource> source) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::DeviceEnergyModel >', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicEnergySourceHelper_methods(root_module, cls):
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper(ns3::BasicEnergySourceHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicEnergySourceHelper const &', 'arg0')])
-    ## basic-energy-source-helper.h: ns3::BasicEnergySourceHelper::BasicEnergySourceHelper() [constructor]
-    cls.add_constructor([])
-    ## basic-energy-source-helper.h: void ns3::BasicEnergySourceHelper::Set(std::string name, ns3::AttributeValue const & v) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')], 
-                   is_virtual=True)
-    ## basic-energy-source-helper.h: ns3::Ptr<ns3::EnergySource> ns3::BasicEnergySourceHelper::DoInstall(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('DoInstall', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DsdvHelper_methods(root_module, cls):
-    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper(ns3::DsdvHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DsdvHelper const &', 'arg0')])
-    ## dsdv-helper.h: ns3::DsdvHelper::DsdvHelper() [constructor]
-    cls.add_constructor([])
-    ## dsdv-helper.h: ns3::DsdvHelper * ns3::DsdvHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::DsdvHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::DsdvHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-helper.h: void ns3::DsdvHelper::Set(std::string name, ns3::AttributeValue const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('std::string', 'name'), param('ns3::AttributeValue const &', 'value')])
-    return
-
-def register_Ns3Ipv4GlobalRoutingHelper_methods(root_module, cls):
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper::Ipv4GlobalRoutingHelper(ns3::Ipv4GlobalRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4GlobalRoutingHelper const &', 'arg0')])
-    ## ipv4-global-routing-helper.h: ns3::Ipv4GlobalRoutingHelper * ns3::Ipv4GlobalRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4GlobalRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4GlobalRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables() [member function]
-    cls.add_method('PopulateRoutingTables', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    ## ipv4-global-routing-helper.h: static void ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables() [member function]
-    cls.add_method('RecomputeRoutingTables', 
-                   'void', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3Ipv4ListRoutingHelper_methods(root_module, cls):
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper::Ipv4ListRoutingHelper(ns3::Ipv4ListRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4ListRoutingHelper const &', 'arg0')])
-    ## ipv4-list-routing-helper.h: ns3::Ipv4ListRoutingHelper * ns3::Ipv4ListRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv4ListRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing-helper.h: void ns3::Ipv4ListRoutingHelper::Add(ns3::Ipv4RoutingHelper const & routing, int16_t priority) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ipv4RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
-    ## ipv4-list-routing-helper.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3Ipv6ListRoutingHelper_methods(root_module, cls):
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper() [constructor]
-    cls.add_constructor([])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper::Ipv6ListRoutingHelper(ns3::Ipv6ListRoutingHelper const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6ListRoutingHelper const &', 'arg0')])
-    ## ipv6-list-routing-helper.h: ns3::Ipv6ListRoutingHelper * ns3::Ipv6ListRoutingHelper::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ipv6ListRoutingHelper *', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing-helper.h: void ns3::Ipv6ListRoutingHelper::Add(ns3::Ipv6RoutingHelper const & routing, int16_t priority) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ipv6RoutingHelper const &', 'routing'), param('int16_t', 'priority')])
-    ## ipv6-list-routing-helper.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRoutingHelper::Create(ns3::Ptr<ns3::Node> node) const [member function]
-    cls.add_method('Create', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3LteMacHeader_methods(root_module, cls):
-    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader() [constructor]
-    cls.add_constructor([])
-    ## lte-mac-header.h: ns3::LteMacHeader::LteMacHeader(ns3::LteMacHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteMacHeader const &', 'arg0')])
-    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetDestination() const [member function]
-    cls.add_method('GetDestination', 
-                   'ns3::Mac48Address', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-header.h: ns3::TypeId ns3::LteMacHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: uint32_t ns3::LteMacHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: ns3::Mac48Address ns3::LteMacHeader::GetSource() const [member function]
-    cls.add_method('GetSource', 
-                   'ns3::Mac48Address', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-header.h: static ns3::TypeId ns3::LteMacHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## lte-mac-header.h: void ns3::LteMacHeader::SetDestination(ns3::Mac48Address destination) [member function]
-    cls.add_method('SetDestination', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'destination')])
-    ## lte-mac-header.h: void ns3::LteMacHeader::SetSource(ns3::Mac48Address source) [member function]
-    cls.add_method('SetSource', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'source')])
-    return
-
-def register_Ns3PacketScheduler_methods(root_module, cls):
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::PacketScheduler const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketScheduler const &', 'arg0')])
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler() [constructor]
-    cls.add_constructor([])
-    ## packet-scheduler.h: ns3::PacketScheduler::PacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## packet-scheduler.h: void ns3::PacketScheduler::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## packet-scheduler.h: void ns3::PacketScheduler::DoRunPacketScheduler() [member function]
-    cls.add_method('DoRunPacketScheduler', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## packet-scheduler.h: ns3::Ptr<ns3::EnbNetDevice> ns3::PacketScheduler::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::EnbNetDevice >', 
-                   [])
-    ## packet-scheduler.h: ns3::Ptr<ns3::MacEntity> ns3::PacketScheduler::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::MacEntity >', 
-                   [])
-    ## packet-scheduler.h: static ns3::TypeId ns3::PacketScheduler::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## packet-scheduler.h: void ns3::PacketScheduler::RunPacketScheduler() [member function]
-    cls.add_method('RunPacketScheduler', 
-                   'void', 
-                   [])
-    ## packet-scheduler.h: void ns3::PacketScheduler::SetDevice(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## packet-scheduler.h: void ns3::PacketScheduler::SetMacEntity(ns3::Ptr<ns3::MacEntity> mac) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MacEntity >', 'mac')])
-    return
-
-def register_Ns3RadioBearerInstance_methods(root_module, cls):
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance(ns3::RadioBearerInstance const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RadioBearerInstance const &', 'arg0')])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::RadioBearerInstance() [constructor]
-    cls.add_constructor([])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::Packet> ns3::RadioBearerInstance::Dequeue(uint32_t availableByte) [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [param('uint32_t', 'availableByte')])
-    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerDirection ns3::RadioBearerInstance::GetBearerDirection() const [member function]
-    cls.add_method('GetBearerDirection', 
-                   'ns3::RadioBearerInstance::BearerDirection', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::RadioBearerInstance::BearerType ns3::RadioBearerInstance::GetBearerType() const [member function]
-    cls.add_method('GetBearerType', 
-                   'ns3::RadioBearerInstance::BearerType', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::IpcsClassifierRecord * ns3::RadioBearerInstance::GetIpcsClassifierRecord() [member function]
-    cls.add_method('GetIpcsClassifierRecord', 
-                   'ns3::IpcsClassifierRecord *', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::BearerQosParameters> ns3::RadioBearerInstance::GetQosParameters() [member function]
-    cls.add_method('GetQosParameters', 
-                   'ns3::Ptr< ns3::BearerQosParameters >', 
-                   [])
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::LteMacQueue> ns3::RadioBearerInstance::GetQueue() const [member function]
-    cls.add_method('GetQueue', 
-                   'ns3::Ptr< ns3::LteMacQueue >', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: ns3::Ptr<ns3::RlcEntity> ns3::RadioBearerInstance::GetRlcEntity() [member function]
-    cls.add_method('GetRlcEntity', 
-                   'ns3::Ptr< ns3::RlcEntity >', 
-                   [])
-    ## radio-bearer-instance.h: static ns3::TypeId ns3::RadioBearerInstance::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## radio-bearer-instance.h: bool ns3::RadioBearerInstance::HasPackets() const [member function]
-    cls.add_method('HasPackets', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerDirection(ns3::RadioBearerInstance::BearerDirection direction) [member function]
-    cls.add_method('SetBearerDirection', 
-                   'void', 
-                   [param('ns3::RadioBearerInstance::BearerDirection', 'direction')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetBearerType(ns3::RadioBearerInstance::BearerType type) [member function]
-    cls.add_method('SetBearerType', 
-                   'void', 
-                   [param('ns3::RadioBearerInstance::BearerType', 'type')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetIpcsClassifierRecord(ns3::IpcsClassifierRecord * c) [member function]
-    cls.add_method('SetIpcsClassifierRecord', 
-                   'void', 
-                   [param('ns3::IpcsClassifierRecord *', 'c')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetQosParameters(ns3::Ptr<ns3::BearerQosParameters> qosParameters) [member function]
-    cls.add_method('SetQosParameters', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::BearerQosParameters >', 'qosParameters')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::SetRlcEntity(ns3::Ptr<ns3::RlcEntity> rlc) [member function]
-    cls.add_method('SetRlcEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RlcEntity >', 'rlc')])
-    ## radio-bearer-instance.h: void ns3::RadioBearerInstance::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3RlcEntity_methods(root_module, cls):
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::RlcEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RlcEntity const &', 'arg0')])
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity() [constructor]
-    cls.add_constructor([])
-    ## rlc-entity.h: ns3::RlcEntity::RlcEntity(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## rlc-entity.h: ns3::Ptr<ns3::Packet> ns3::RlcEntity::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## rlc-entity.h: void ns3::RlcEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rlc-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::RlcEntity::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## rlc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RlcEntity::GetRadioBearer() [member function]
-    cls.add_method('GetRadioBearer', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [])
-    ## rlc-entity.h: static ns3::TypeId ns3::RlcEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rlc-entity.h: void ns3::RlcEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## rlc-entity.h: void ns3::RlcEntity::SetRadioBearer(ns3::Ptr<ns3::RadioBearerInstance> b) [member function]
-    cls.add_method('SetRadioBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'b')])
-    return
-
-def register_Ns3RrcEntity_methods(root_module, cls):
-    ## rrc-entity.h: ns3::RrcEntity::RrcEntity(ns3::RrcEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RrcEntity const &', 'arg0')])
-    ## rrc-entity.h: ns3::RrcEntity::RrcEntity() [constructor]
-    cls.add_constructor([])
-    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddDownlinkGbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddDownlinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddDownlinkNgbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkGbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddUplinkGbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: void ns3::RrcEntity::AddUplinkNgbrBearer(ns3::Ptr<ns3::RadioBearerInstance> bearer) [member function]
-    cls.add_method('AddUplinkNgbrBearer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RadioBearerInstance >', 'bearer')])
-    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::Classify(ns3::Ptr<ns3::Packet> p) const [member function]
-    cls.add_method('Classify', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   is_const=True)
-    ## rrc-entity.h: void ns3::RrcEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rrc-entity.h: ns3::Ptr<ns3::RadioBearerInstance> ns3::RrcEntity::GetDefaultBearer() [member function]
-    cls.add_method('GetDefaultBearer', 
-                   'ns3::Ptr< ns3::RadioBearerInstance >', 
-                   [])
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkGbrBearers() const [member function]
-    cls.add_method('GetDownlinkGbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetDownlinkNgbrBearers() const [member function]
-    cls.add_method('GetDownlinkNgbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: static ns3::TypeId ns3::RrcEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkGbrBearers() const [member function]
-    cls.add_method('GetUplinkGbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    ## rrc-entity.h: std::vector<ns3::Ptr<ns3::RadioBearerInstance>,std::allocator<ns3::Ptr<ns3::RadioBearerInstance> > > * ns3::RrcEntity::GetUplinkNgbrBearers() const [member function]
-    cls.add_method('GetUplinkNgbrBearers', 
-                   'std::vector< ns3::Ptr< ns3::RadioBearerInstance > > *', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3SimplePacketScheduler_methods(root_module, cls):
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::SimplePacketScheduler const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SimplePacketScheduler const &', 'arg0')])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler() [constructor]
-    cls.add_constructor([])
-    ## simple-packet-scheduler.h: ns3::SimplePacketScheduler::SimplePacketScheduler(ns3::Ptr<ns3::EnbNetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## simple-packet-scheduler.h: void ns3::SimplePacketScheduler::DoRunPacketScheduler() [member function]
-    cls.add_method('DoRunPacketScheduler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## simple-packet-scheduler.h: static ns3::TypeId ns3::SimplePacketScheduler::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanHeaderCommon_methods(root_module, cls):
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanHeaderCommon const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderCommon const &', 'arg0')])
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon() [constructor]
-    cls.add_constructor([])
-    ## uan-header-common.h: ns3::UanHeaderCommon::UanHeaderCommon(ns3::UanAddress const src, ns3::UanAddress const dest, uint8_t type) [constructor]
-    cls.add_constructor([param('ns3::UanAddress const', 'src'), param('ns3::UanAddress const', 'dest'), param('uint8_t', 'type')])
-    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetDest() const [member function]
-    cls.add_method('GetDest', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: ns3::TypeId ns3::UanHeaderCommon::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: uint32_t ns3::UanHeaderCommon::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: ns3::UanAddress ns3::UanHeaderCommon::GetSrc() const [member function]
-    cls.add_method('GetSrc', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: uint8_t ns3::UanHeaderCommon::GetType() const [member function]
-    cls.add_method('GetType', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-common.h: static ns3::TypeId ns3::UanHeaderCommon::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetDest(ns3::UanAddress dest) [member function]
-    cls.add_method('SetDest', 
-                   'void', 
-                   [param('ns3::UanAddress', 'dest')])
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetSrc(ns3::UanAddress src) [member function]
-    cls.add_method('SetSrc', 
-                   'void', 
-                   [param('ns3::UanAddress', 'src')])
-    ## uan-header-common.h: void ns3::UanHeaderCommon::SetType(uint8_t type) [member function]
-    cls.add_method('SetType', 
-                   'void', 
-                   [param('uint8_t', 'type')])
-    return
-
-def register_Ns3UanHeaderRcAck_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck(ns3::UanHeaderRcAck const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcAck const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcAck::UanHeaderRcAck() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::AddNackedFrame(uint8_t frame) [member function]
-    cls.add_method('AddNackedFrame', 
-                   'void', 
-                   [param('uint8_t', 'frame')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcAck::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: std::set<unsigned char, std::less<unsigned char>, std::allocator<unsigned char> > const & ns3::UanHeaderRcAck::GetNackedFrames() const [member function]
-    cls.add_method('GetNackedFrames', 
-                   'std::set< unsigned char > const &', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcAck::GetNoNacks() const [member function]
-    cls.add_method('GetNoNacks', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcAck::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcAck::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcAck::SetFrameNo(uint8_t frameNo) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNo')])
-    return
-
-def register_Ns3UanHeaderRcCts_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(ns3::UanHeaderRcCts const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcCts const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcCts::UanHeaderRcCts(uint8_t frameNo, uint8_t retryNo, ns3::Time rtsTs, ns3::Time delay, ns3::UanAddress addr) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('ns3::Time', 'rtsTs'), param('ns3::Time', 'delay'), param('ns3::UanAddress', 'addr')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: ns3::UanAddress ns3::UanHeaderRcCts::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::UanAddress', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetDelayToTx() const [member function]
-    cls.add_method('GetDelayToTx', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCts::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcCts::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCts::GetRtsTimeStamp() const [member function]
-    cls.add_method('GetRtsTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCts::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCts::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetDelayToTx(ns3::Time delay) [member function]
-    cls.add_method('SetDelayToTx', 
-                   'void', 
-                   [param('ns3::Time', 'delay')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetFrameNo(uint8_t frameNo) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNo')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRetryNo(uint8_t no) [member function]
-    cls.add_method('SetRetryNo', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCts::SetRtsTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetRtsTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    return
-
-def register_Ns3UanHeaderRcCtsGlobal_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::UanHeaderRcCtsGlobal const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcCtsGlobal const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal(ns3::Time wt, ns3::Time ts, uint16_t rate, uint16_t retryRate) [constructor]
-    cls.add_constructor([param('ns3::Time', 'wt'), param('ns3::Time', 'ts'), param('uint16_t', 'rate'), param('uint16_t', 'retryRate')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRateNum() const [member function]
-    cls.add_method('GetRateNum', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcCtsGlobal::GetRetryRate() const [member function]
-    cls.add_method('GetRetryRate', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcCtsGlobal::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp() const [member function]
-    cls.add_method('GetTxTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcCtsGlobal::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcCtsGlobal::GetWindowTime() const [member function]
-    cls.add_method('GetWindowTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRateNum(uint16_t rate) [member function]
-    cls.add_method('SetRateNum', 
-                   'void', 
-                   [param('uint16_t', 'rate')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetRetryRate(uint16_t rate) [member function]
-    cls.add_method('SetRetryRate', 
-                   'void', 
-                   [param('uint16_t', 'rate')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetTxTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcCtsGlobal::SetWindowTime(ns3::Time t) [member function]
-    cls.add_method('SetWindowTime', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    return
-
-def register_Ns3UanHeaderRcData_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(ns3::UanHeaderRcData const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcData const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcData::UanHeaderRcData(uint8_t frameNum, ns3::Time propDelay) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNum'), param('ns3::Time', 'propDelay')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcData::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcData::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcData::GetPropDelay() const [member function]
-    cls.add_method('GetPropDelay', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcData::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcData::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetFrameNo(uint8_t frameNum) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'frameNum')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcData::SetPropDelay(ns3::Time propDelay) [member function]
-    cls.add_method('SetPropDelay', 
-                   'void', 
-                   [param('ns3::Time', 'propDelay')])
-    return
-
-def register_Ns3UanHeaderRcRts_methods(root_module, cls):
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(ns3::UanHeaderRcRts const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanHeaderRcRts const &', 'arg0')])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts() [constructor]
-    cls.add_constructor([])
-    ## uan-header-rc.h: ns3::UanHeaderRcRts::UanHeaderRcRts(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length, ns3::Time ts) [constructor]
-    cls.add_constructor([param('uint8_t', 'frameNo'), param('uint8_t', 'retryNo'), param('uint8_t', 'noFrames'), param('uint16_t', 'length'), param('ns3::Time', 'ts')])
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetFrameNo() const [member function]
-    cls.add_method('GetFrameNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: ns3::TypeId ns3::UanHeaderRcRts::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: uint16_t ns3::UanHeaderRcRts::GetLength() const [member function]
-    cls.add_method('GetLength', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetNoFrames() const [member function]
-    cls.add_method('GetNoFrames', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint8_t ns3::UanHeaderRcRts::GetRetryNo() const [member function]
-    cls.add_method('GetRetryNo', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: uint32_t ns3::UanHeaderRcRts::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: ns3::Time ns3::UanHeaderRcRts::GetTimeStamp() const [member function]
-    cls.add_method('GetTimeStamp', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## uan-header-rc.h: static ns3::TypeId ns3::UanHeaderRcRts::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetFrameNo(uint8_t fno) [member function]
-    cls.add_method('SetFrameNo', 
-                   'void', 
-                   [param('uint8_t', 'fno')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetLength(uint16_t length) [member function]
-    cls.add_method('SetLength', 
-                   'void', 
-                   [param('uint16_t', 'length')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetNoFrames(uint8_t no) [member function]
-    cls.add_method('SetNoFrames', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetRetryNo(uint8_t no) [member function]
-    cls.add_method('SetRetryNo', 
-                   'void', 
-                   [param('uint8_t', 'no')])
-    ## uan-header-rc.h: void ns3::UanHeaderRcRts::SetTimeStamp(ns3::Time timeStamp) [member function]
-    cls.add_method('SetTimeStamp', 
-                   'void', 
-                   [param('ns3::Time', 'timeStamp')])
-    return
-
-def register_Ns3UanMac_methods(root_module, cls):
-    ## uan-mac.h: ns3::UanMac::UanMac() [constructor]
-    cls.add_constructor([])
-    ## uan-mac.h: ns3::UanMac::UanMac(ns3::UanMac const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMac const &', 'arg0')])
-    ## uan-mac.h: void ns3::UanMac::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: bool ns3::UanMac::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: ns3::Address ns3::UanMac::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: ns3::Address ns3::UanMac::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-mac.h: void ns3::UanMac::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanMacAloha_methods(root_module, cls):
-    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha(ns3::UanMacAloha const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacAloha const &', 'arg0')])
-    ## uan-mac-aloha.h: ns3::UanMacAloha::UanMacAloha() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: bool ns3::UanMacAloha::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: ns3::Address ns3::UanMacAloha::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-aloha.h: static ns3::TypeId ns3::UanMacAloha::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-aloha.h: void ns3::UanMacAloha::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacCw_methods(root_module, cls):
-    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw(ns3::UanMacCw const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacCw const &', 'arg0')])
-    ## uan-mac-cw.h: ns3::UanMacCw::UanMacCw() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-cw.h: void ns3::UanMacCw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: bool ns3::UanMacCw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Address ns3::UanMacCw::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-cw.h: uint32_t ns3::UanMacCw::GetCw() [member function]
-    cls.add_method('GetCw', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: ns3::Time ns3::UanMacCw::GetSlotTime() [member function]
-    cls.add_method('GetSlotTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: static ns3::TypeId ns3::UanMacCw::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaEnd() [member function]
-    cls.add_method('NotifyCcaEnd', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyCcaStart() [member function]
-    cls.add_method('NotifyCcaStart', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndError() [member function]
-    cls.add_method('NotifyRxEndError', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxEndOk() [member function]
-    cls.add_method('NotifyRxEndOk', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyRxStart() [member function]
-    cls.add_method('NotifyRxStart', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::NotifyTxStart(ns3::Time duration) [member function]
-    cls.add_method('NotifyTxStart', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetCw(uint32_t cw) [member function]
-    cls.add_method('SetCw', 
-                   'void', 
-                   [param('uint32_t', 'cw')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::SetSlotTime(ns3::Time duration) [member function]
-    cls.add_method('SetSlotTime', 
-                   'void', 
-                   [param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## uan-mac-cw.h: void ns3::UanMacCw::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacRc_methods(root_module, cls):
-    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc(ns3::UanMacRc const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacRc const &', 'arg0')])
-    ## uan-mac-rc.h: ns3::UanMacRc::UanMacRc() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc.h: void ns3::UanMacRc::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: bool ns3::UanMacRc::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: ns3::Address ns3::UanMacRc::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-rc.h: static ns3::TypeId ns3::UanMacRc::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-rc.h: void ns3::UanMacRc::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanMacRcGw_methods(root_module, cls):
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw(ns3::UanMacRcGw const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanMacRcGw const &', 'arg0')])
-    ## uan-mac-rc-gw.h: ns3::UanMacRcGw::UanMacRcGw() [constructor]
-    cls.add_constructor([])
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::AttachPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AttachPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: bool ns3::UanMacRcGw::Enqueue(ns3::Ptr<ns3::Packet> pkt, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetAddress() [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: ns3::Address ns3::UanMacRcGw::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-mac-rc-gw.h: static ns3::TypeId ns3::UanMacRcGw::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetAddress(ns3::UanAddress addr) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::UanAddress', 'addr')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::SetForwardUpCb(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::UanAddress const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetForwardUpCb', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::UanAddress const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-mac-rc-gw.h: void ns3::UanMacRcGw::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanNoiseModel_methods(root_module, cls):
-    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel() [constructor]
-    cls.add_constructor([])
-    ## uan-noise-model.h: ns3::UanNoiseModel::UanNoiseModel(ns3::UanNoiseModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNoiseModel const &', 'arg0')])
-    ## uan-noise-model.h: void ns3::UanNoiseModel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-noise-model.h: void ns3::UanNoiseModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-noise-model.h: double ns3::UanNoiseModel::GetNoiseDbHz(double fKhz) const [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    return
-
-def register_Ns3UanNoiseModelDefault_methods(root_module, cls):
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault(ns3::UanNoiseModelDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNoiseModelDefault const &', 'arg0')])
-    ## uan-noise-model-default.h: ns3::UanNoiseModelDefault::UanNoiseModelDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-noise-model-default.h: double ns3::UanNoiseModelDefault::GetNoiseDbHz(double fKhz) const [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')], 
-                   is_const=True, is_virtual=True)
-    ## uan-noise-model-default.h: static ns3::TypeId ns3::UanNoiseModelDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhy_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhy::UanPhy() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhy::UanPhy(ns3::UanPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhy const &', 'arg0')])
-    ## uan-phy.h: void ns3::UanPhy::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhy::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::UanTxMode ns3::UanPhy::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: uint32_t ns3::UanPhy::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::Packet> ns3::UanPhy::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhy::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhy::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: bool ns3::UanPhy::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhy::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanPhyCalcSinr_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyCalcSinr::UanPhyCalcSinr(ns3::UanPhyCalcSinr const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinr const &', 'arg0')])
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyCalcSinr::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::DbToKp(double db) const [member function]
-    cls.add_method('DbToKp', 
-                   'double', 
-                   [param('double', 'db')], 
-                   is_const=True)
-    ## uan-phy.h: void ns3::UanPhyCalcSinr::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: double ns3::UanPhyCalcSinr::KpToDb(double kp) const [member function]
-    cls.add_method('KpToDb', 
-                   'double', 
-                   [param('double', 'kp')], 
-                   is_const=True)
-    return
-
-def register_Ns3UanPhyCalcSinrDefault_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault(ns3::UanPhyCalcSinrDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrDefault const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrDefault::UanPhyCalcSinrDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrDefault::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyCalcSinrDual_methods(root_module, cls):
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual(ns3::UanPhyCalcSinrDual const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrDual const &', 'arg0')])
-    ## uan-phy-dual.h: ns3::UanPhyCalcSinrDual::UanPhyCalcSinrDual() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-dual.h: double ns3::UanPhyCalcSinrDual::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyCalcSinrDual::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyCalcSinrFhFsk_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk(ns3::UanPhyCalcSinrFhFsk const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyCalcSinrFhFsk const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyCalcSinrFhFsk::UanPhyCalcSinrFhFsk() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyCalcSinrFhFsk::CalcSinrDb(ns3::Ptr<ns3::Packet> pkt, ns3::Time arrTime, double rxPowerDb, double ambNoiseDb, ns3::UanTxMode mode, ns3::UanPdp pdp, std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & arrivalList) const [member function]
-    cls.add_method('CalcSinrDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::Time', 'arrTime'), param('double', 'rxPowerDb'), param('double', 'ambNoiseDb'), param('ns3::UanTxMode', 'mode'), param('ns3::UanPdp', 'pdp'), param('std::list< ns3::UanPacketArrival > const &', 'arrivalList')], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyCalcSinrFhFsk::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyDual_methods(root_module, cls):
-    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual(ns3::UanPhyDual const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyDual const &', 'arg0')])
-    ## uan-phy-dual.h: ns3::UanPhyDual::UanPhyDual() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy1() const [member function]
-    cls.add_method('GetCcaThresholdPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetCcaThresholdPhy2() const [member function]
-    cls.add_method('GetCcaThresholdPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyDual::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyDual::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::UanTxMode ns3::UanPhyDual::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy1() const [member function]
-    cls.add_method('GetModesPhy1', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::UanModesList ns3::UanPhyDual::GetModesPhy2() const [member function]
-    cls.add_method('GetModesPhy2', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: uint32_t ns3::UanPhyDual::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy1() const [member function]
-    cls.add_method('GetPerModelPhy1', 
-                   'ns3::Ptr< ns3::UanPhyPer >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyPer> ns3::UanPhyDual::GetPerModelPhy2() const [member function]
-    cls.add_method('GetPerModelPhy2', 
-                   'ns3::Ptr< ns3::UanPhyPer >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy1PacketRx() const [member function]
-    cls.add_method('GetPhy1PacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::Packet> ns3::UanPhyDual::GetPhy2PacketRx() const [member function]
-    cls.add_method('GetPhy2PacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy1() const [member function]
-    cls.add_method('GetRxGainDbPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxGainDbPhy2() const [member function]
-    cls.add_method('GetRxGainDbPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy1() const [member function]
-    cls.add_method('GetSinrModelPhy1', 
-                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanPhyCalcSinr> ns3::UanPhyDual::GetSinrModelPhy2() const [member function]
-    cls.add_method('GetSinrModelPhy2', 
-                   'ns3::Ptr< ns3::UanPhyCalcSinr >', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyDual::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy1() const [member function]
-    cls.add_method('GetTxPowerDbPhy1', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: double ns3::UanPhyDual::GetTxPowerDbPhy2() const [member function]
-    cls.add_method('GetTxPowerDbPhy2', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## uan-phy-dual.h: static ns3::TypeId ns3::UanPhyDual::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Idle() [member function]
-    cls.add_method('IsPhy1Idle', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Rx() [member function]
-    cls.add_method('IsPhy1Rx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy1Tx() [member function]
-    cls.add_method('IsPhy1Tx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Idle() [member function]
-    cls.add_method('IsPhy2Idle', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Rx() [member function]
-    cls.add_method('IsPhy2Rx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsPhy2Tx() [member function]
-    cls.add_method('IsPhy2Tx', 
-                   'bool', 
-                   [])
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: bool ns3::UanPhyDual::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy1(double thresh) [member function]
-    cls.add_method('SetCcaThresholdPhy1', 
-                   'void', 
-                   [param('double', 'thresh')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetCcaThresholdPhy2(double thresh) [member function]
-    cls.add_method('SetCcaThresholdPhy2', 
-                   'void', 
-                   [param('double', 'thresh')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy1(ns3::UanModesList modes) [member function]
-    cls.add_method('SetModesPhy1', 
-                   'void', 
-                   [param('ns3::UanModesList', 'modes')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetModesPhy2(ns3::UanModesList modes) [member function]
-    cls.add_method('SetModesPhy2', 
-                   'void', 
-                   [param('ns3::UanModesList', 'modes')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy1(ns3::Ptr<ns3::UanPhyPer> per) [member function]
-    cls.add_method('SetPerModelPhy1', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetPerModelPhy2(ns3::Ptr<ns3::UanPhyPer> per) [member function]
-    cls.add_method('SetPerModelPhy2', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyPer >', 'per')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy1(double gain) [member function]
-    cls.add_method('SetRxGainDbPhy1', 
-                   'void', 
-                   [param('double', 'gain')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxGainDbPhy2(double gain) [member function]
-    cls.add_method('SetRxGainDbPhy2', 
-                   'void', 
-                   [param('double', 'gain')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy1(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
-    cls.add_method('SetSinrModelPhy1', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetSinrModelPhy2(ns3::Ptr<ns3::UanPhyCalcSinr> calcSinr) [member function]
-    cls.add_method('SetSinrModelPhy2', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhyCalcSinr >', 'calcSinr')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy1(double arg0) [member function]
-    cls.add_method('SetTxPowerDbPhy1', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::SetTxPowerDbPhy2(double arg0) [member function]
-    cls.add_method('SetTxPowerDbPhy2', 
-                   'void', 
-                   [param('double', 'arg0')])
-    ## uan-phy-dual.h: void ns3::UanPhyDual::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-phy-dual.h: void ns3::UanPhyDual::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanPhyGen_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen(ns3::UanPhyGen const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyGen const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyGen::UanPhyGen() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: void ns3::UanPhyGen::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::EnergyDepletionHandler() [member function]
-    cls.add_method('EnergyDepletionHandler', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetCcaThresholdDb() [member function]
-    cls.add_method('GetCcaThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanChannel> ns3::UanPhyGen::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: static ns3::UanModesList ns3::UanPhyGen::GetDefaultModes() [member function]
-    cls.add_method('GetDefaultModes', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanNetDevice> ns3::UanPhyGen::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::UanNetDevice >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::UanTxMode ns3::UanPhyGen::GetMode(uint32_t n) [member function]
-    cls.add_method('GetMode', 
-                   'ns3::UanTxMode', 
-                   [param('uint32_t', 'n')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: uint32_t ns3::UanPhyGen::GetNModes() [member function]
-    cls.add_method('GetNModes', 
-                   'uint32_t', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::Packet> ns3::UanPhyGen::GetPacketRx() const [member function]
-    cls.add_method('GetPacketRx', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxGainDb() [member function]
-    cls.add_method('GetRxGainDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetRxThresholdDb() [member function]
-    cls.add_method('GetRxThresholdDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: ns3::Ptr<ns3::UanTransducer> ns3::UanPhyGen::GetTransducer() [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: double ns3::UanPhyGen::GetTxPowerDb() [member function]
-    cls.add_method('GetTxPowerDb', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyGen::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateBusy() [member function]
-    cls.add_method('IsStateBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateCcaBusy() [member function]
-    cls.add_method('IsStateCcaBusy', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateIdle() [member function]
-    cls.add_method('IsStateIdle', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateRx() [member function]
-    cls.add_method('IsStateRx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateSleep() [member function]
-    cls.add_method('IsStateSleep', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: bool ns3::UanPhyGen::IsStateTx() [member function]
-    cls.add_method('IsStateTx', 
-                   'bool', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyIntChange() [member function]
-    cls.add_method('NotifyIntChange', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::NotifyTransStartTx(ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('NotifyTransStartTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::RegisterListener(ns3::UanPhyListener * listener) [member function]
-    cls.add_method('RegisterListener', 
-                   'void', 
-                   [param('ns3::UanPhyListener *', 'listener')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SendPacket(ns3::Ptr<ns3::Packet> pkt, uint32_t modeNum) [member function]
-    cls.add_method('SendPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('uint32_t', 'modeNum')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetCcaThresholdDb(double thresh) [member function]
-    cls.add_method('SetCcaThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetDevice(ns3::Ptr<ns3::UanNetDevice> device) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'device')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetEnergyModelCallback(ns3::Callback<void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetEnergyModelCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetReceiveOkCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> cb) [member function]
-    cls.add_method('SetReceiveOkCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::UanTxMode, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxGainDb(double gain) [member function]
-    cls.add_method('SetRxGainDb', 
-                   'void', 
-                   [param('double', 'gain')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetRxThresholdDb(double thresh) [member function]
-    cls.add_method('SetRxThresholdDb', 
-                   'void', 
-                   [param('double', 'thresh')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::SetTxPowerDb(double txpwr) [member function]
-    cls.add_method('SetTxPowerDb', 
-                   'void', 
-                   [param('double', 'txpwr')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::StartRxPacket(ns3::Ptr<ns3::Packet> pkt, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('StartRxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: void ns3::UanPhyGen::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanPhyPer_methods(root_module, cls):
-    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer() [constructor]
-    cls.add_constructor([])
-    ## uan-phy.h: ns3::UanPhyPer::UanPhyPer(ns3::UanPhyPer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPer const &', 'arg0')])
-    ## uan-phy.h: double ns3::UanPhyPer::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyPer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-phy.h: void ns3::UanPhyPer::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    return
-
-def register_Ns3UanPhyPerGenDefault_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault(ns3::UanPhyPerGenDefault const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPerGenDefault const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyPerGenDefault::UanPhyPerGenDefault() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyPerGenDefault::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerGenDefault::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPhyPerUmodem_methods(root_module, cls):
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem(ns3::UanPhyPerUmodem const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPhyPerUmodem const &', 'arg0')])
-    ## uan-phy-gen.h: ns3::UanPhyPerUmodem::UanPhyPerUmodem() [constructor]
-    cls.add_constructor([])
-    ## uan-phy-gen.h: double ns3::UanPhyPerUmodem::CalcPer(ns3::Ptr<ns3::Packet> pkt, double sinrDb, ns3::UanTxMode mode) [member function]
-    cls.add_method('CalcPer', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('double', 'sinrDb'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-phy-gen.h: static ns3::TypeId ns3::UanPhyPerUmodem::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPropModel_methods(root_module, cls):
-    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model.h: ns3::UanPropModel::UanPropModel(ns3::UanPropModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModel const &', 'arg0')])
-    ## uan-prop-model.h: void ns3::UanPropModel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-prop-model.h: void ns3::UanPropModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-prop-model.h: ns3::Time ns3::UanPropModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-prop-model.h: double ns3::UanPropModel::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode txMode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-prop-model.h: ns3::UanPdp ns3::UanPropModel::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanPropModelIdeal_methods(root_module, cls):
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal(ns3::UanPropModelIdeal const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModelIdeal const &', 'arg0')])
-    ## uan-prop-model-ideal.h: ns3::UanPropModelIdeal::UanPropModelIdeal() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model-ideal.h: ns3::Time ns3::UanPropModelIdeal::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: double ns3::UanPropModelIdeal::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: ns3::UanPdp ns3::UanPropModelIdeal::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-ideal.h: static ns3::TypeId ns3::UanPropModelIdeal::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanPropModelThorp_methods(root_module, cls):
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp(ns3::UanPropModelThorp const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanPropModelThorp const &', 'arg0')])
-    ## uan-prop-model-thorp.h: ns3::UanPropModelThorp::UanPropModelThorp() [constructor]
-    cls.add_constructor([])
-    ## uan-prop-model-thorp.h: ns3::Time ns3::UanPropModelThorp::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetDelay', 
-                   'ns3::Time', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: double ns3::UanPropModelThorp::GetPathLossDb(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPathLossDb', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: ns3::UanPdp ns3::UanPropModelThorp::GetPdp(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b, ns3::UanTxMode mode) [member function]
-    cls.add_method('GetPdp', 
-                   'ns3::UanPdp', 
-                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b'), param('ns3::UanTxMode', 'mode')], 
-                   is_virtual=True)
-    ## uan-prop-model-thorp.h: static ns3::TypeId ns3::UanPropModelThorp::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UanTransducer_methods(root_module, cls):
-    ## uan-transducer.h: ns3::UanTransducer::UanTransducer() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer.h: ns3::UanTransducer::UanTransducer(ns3::UanTransducer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTransducer const &', 'arg0')])
-    ## uan-transducer.h: void ns3::UanTransducer::AddPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('AddPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducer::GetArrivalList() const [member function]
-    cls.add_method('GetArrivalList', 
-                   'std::list< ns3::UanPacketArrival > const &', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducer::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducer::GetPhyList() const [member function]
-    cls.add_method('GetPhyList', 
-                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: ns3::UanTransducer::State ns3::UanTransducer::GetState() const [member function]
-    cls.add_method('GetState', 
-                   'ns3::UanTransducer::State', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: bool ns3::UanTransducer::IsRx() const [member function]
-    cls.add_method('IsRx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: bool ns3::UanTransducer::IsTx() const [member function]
-    cls.add_method('IsTx', 
-                   'bool', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## uan-transducer.h: void ns3::UanTransducer::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('Transmit', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_pure_virtual=True, is_virtual=True)
-    return
-
-def register_Ns3UanTransducerHd_methods(root_module, cls):
-    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd(ns3::UanTransducerHd const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanTransducerHd const &', 'arg0')])
-    ## uan-transducer-hd.h: ns3::UanTransducerHd::UanTransducerHd() [constructor]
-    cls.add_constructor([])
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::AddPhy(ns3::Ptr<ns3::UanPhy> arg0) [member function]
-    cls.add_method('AddPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'arg0')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: std::list<ns3::UanPacketArrival, std::allocator<ns3::UanPacketArrival> > const & ns3::UanTransducerHd::GetArrivalList() const [member function]
-    cls.add_method('GetArrivalList', 
-                   'std::list< ns3::UanPacketArrival > const &', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: ns3::Ptr<ns3::UanChannel> ns3::UanTransducerHd::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::UanChannel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: std::list<ns3::Ptr<ns3::UanPhy>, std::allocator<ns3::Ptr<ns3::UanPhy> > > const & ns3::UanTransducerHd::GetPhyList() const [member function]
-    cls.add_method('GetPhyList', 
-                   'std::list< ns3::Ptr< ns3::UanPhy > > const &', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: ns3::UanTransducer::State ns3::UanTransducerHd::GetState() const [member function]
-    cls.add_method('GetState', 
-                   'ns3::UanTransducer::State', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: static ns3::TypeId ns3::UanTransducerHd::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsRx() const [member function]
-    cls.add_method('IsRx', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: bool ns3::UanTransducerHd::IsTx() const [member function]
-    cls.add_method('IsTx', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Receive(ns3::Ptr<ns3::Packet> packet, double rxPowerDb, ns3::UanTxMode txMode, ns3::UanPdp pdp) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDb'), param('ns3::UanTxMode', 'txMode'), param('ns3::UanPdp', 'pdp')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::SetChannel(ns3::Ptr<ns3::UanChannel> chan) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'chan')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::Transmit(ns3::Ptr<ns3::UanPhy> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txMode) [member function]
-    cls.add_method('Transmit', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txMode')], 
-                   is_virtual=True)
-    ## uan-transducer-hd.h: void ns3::UanTransducerHd::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UeManager_methods(root_module, cls):
-    ## ue-manager.h: ns3::UeManager::UeManager(ns3::UeManager const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeManager const &', 'arg0')])
-    ## ue-manager.h: ns3::UeManager::UeManager() [constructor]
-    cls.add_constructor([])
-    ## ue-manager.h: void ns3::UeManager::CreateUeRecord(ns3::Ptr<ns3::UeNetDevice> ue, ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('CreateUeRecord', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue'), param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
-    cls.add_method('DeleteUeRecord', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
-    ## ue-manager.h: void ns3::UeManager::DeleteUeRecord(ns3::Mac48Address const & macAddress) [member function]
-    cls.add_method('DeleteUeRecord', 
-                   'void', 
-                   [param('ns3::Mac48Address const &', 'macAddress')])
-    ## ue-manager.h: uint32_t ns3::UeManager::GetNRegisteredUes() const [member function]
-    cls.add_method('GetNRegisteredUes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Ptr<ns3::UeNetDevice> ue) [member function]
-    cls.add_method('GetUeRecord', 
-                   'ns3::Ptr< ns3::UeRecord >', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')])
-    ## ue-manager.h: ns3::Ptr<ns3::UeRecord> ns3::UeManager::GetUeRecord(ns3::Mac48Address const macAddress) [member function]
-    cls.add_method('GetUeRecord', 
-                   'ns3::Ptr< ns3::UeRecord >', 
-                   [param('ns3::Mac48Address const', 'macAddress')])
-    ## ue-manager.h: std::vector<ns3::Ptr<ns3::UeRecord>,std::allocator<ns3::Ptr<ns3::UeRecord> > > * ns3::UeManager::GetUeRecords() [member function]
-    cls.add_method('GetUeRecords', 
-                   'std::vector< ns3::Ptr< ns3::UeRecord > > *', 
-                   [])
-    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Ptr<ns3::UeNetDevice> ue) const [member function]
-    cls.add_method('IsRegistered', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::UeNetDevice >', 'ue')], 
-                   is_const=True)
-    ## ue-manager.h: bool ns3::UeManager::IsRegistered(ns3::Mac48Address const & macAddress) const [member function]
-    cls.add_method('IsRegistered', 
-                   'bool', 
-                   [param('ns3::Mac48Address const &', 'macAddress')], 
-                   is_const=True)
-    return
-
-def register_Ns3UeRecord_methods(root_module, cls):
-    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::UeRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeRecord const &', 'arg0')])
-    ## ue-record.h: ns3::UeRecord::UeRecord() [constructor]
-    cls.add_constructor([])
-    ## ue-record.h: ns3::UeRecord::UeRecord(ns3::Ptr<ns3::NetDevice> ue, ns3::Ptr<ns3::NetDevice> enb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'ue'), param('ns3::Ptr< ns3::NetDevice >', 'enb')])
-    ## ue-record.h: std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > ns3::UeRecord::GetCqiFeedbacks() [member function]
-    cls.add_method('GetCqiFeedbacks', 
-                   'std::vector< ns3::UeRecord::CqiFeedback >', 
-                   [])
-    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetEnb() [member function]
-    cls.add_method('GetEnb', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [])
-    ## ue-record.h: ns3::Ptr<ns3::NetDevice> ns3::UeRecord::GetUe() [member function]
-    cls.add_method('GetUe', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [])
-    ## ue-record.h: void ns3::UeRecord::SetCqiFeedbacks(std::vector<ns3::UeRecord::CqiFeedback, std::allocator<ns3::UeRecord::CqiFeedback> > cqiFeedbacks) [member function]
-    cls.add_method('SetCqiFeedbacks', 
-                   'void', 
-                   [param('std::vector< ns3::UeRecord::CqiFeedback >', 'cqiFeedbacks')])
-    ## ue-record.h: void ns3::UeRecord::SetEnb(ns3::Ptr<ns3::NetDevice> enb) [member function]
-    cls.add_method('SetEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'enb')])
-    ## ue-record.h: void ns3::UeRecord::SetUe(ns3::Ptr<ns3::NetDevice> ue) [member function]
-    cls.add_method('SetUe', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'ue')])
-    return
-
-def register_Ns3UeRecordCqiFeedback_methods(root_module, cls):
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback() [constructor]
-    cls.add_constructor([])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::CqiFeedback(ns3::UeRecord::CqiFeedback const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeRecord::CqiFeedback const &', 'arg0')])
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_cqi [variable]
-    cls.add_instance_attribute('m_cqi', 'int', is_const=False)
-    ## ue-record.h: ns3::UeRecord::CqiFeedback::m_subChannelId [variable]
-    cls.add_instance_attribute('m_subChannelId', 'int', is_const=False)
-    return
-
-def register_Ns3AmcModule_methods(root_module, cls):
-    ## amc-module.h: ns3::AmcModule::AmcModule(ns3::AmcModule const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AmcModule const &', 'arg0')])
-    ## amc-module.h: ns3::AmcModule::AmcModule() [constructor]
-    cls.add_constructor([])
-    ## amc-module.h: std::vector<int, std::allocator<int> > ns3::AmcModule::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'std::vector< int >', 
-                   [param('std::vector< double >', 'sinr')])
-    ## amc-module.h: int ns3::AmcModule::GetMcsFromCqi(int cqi) [member function]
-    cls.add_method('GetMcsFromCqi', 
-                   'int', 
-                   [param('int', 'cqi')])
-    ## amc-module.h: double ns3::AmcModule::GetSpectralEfficiencyFromCqi(int cqi) [member function]
-    cls.add_method('GetSpectralEfficiencyFromCqi', 
-                   'double', 
-                   [param('int', 'cqi')])
-    ## amc-module.h: int ns3::AmcModule::GetTbSizeFromMcs(int mcs) [member function]
-    cls.add_method('GetTbSizeFromMcs', 
-                   'int', 
-                   [param('int', 'mcs')])
-    ## amc-module.h: static ns3::TypeId ns3::AmcModule::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## amc-module.h: void ns3::AmcModule::Initialize() [member function]
-    cls.add_method('Initialize', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3BearerQosParameters_methods(root_module, cls):
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(ns3::BearerQosParameters const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BearerQosParameters const &', 'arg0')])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters() [constructor]
-    cls.add_constructor([])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, double gbr, double mbr) [constructor]
-    cls.add_constructor([param('int', 'qci'), param('double', 'gbr'), param('double', 'mbr')])
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosParameters(int qci, bool apec, bool apev, double gbr, double mbr) [constructor]
-    cls.add_constructor([param('int', 'qci'), param('bool', 'apec'), param('bool', 'apev'), param('double', 'gbr'), param('double', 'mbr')])
-    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionCapability() const [member function]
-    cls.add_method('GetArpPreEmptionCapability', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: bool ns3::BearerQosParameters::GetArpPreEmptionVulnerability() const [member function]
-    cls.add_method('GetArpPreEmptionVulnerability', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: ns3::BearerQosParameters::BearerQosType ns3::BearerQosParameters::GetBearerQosType() const [member function]
-    cls.add_method('GetBearerQosType', 
-                   'ns3::BearerQosParameters::BearerQosType', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetGbr() const [member function]
-    cls.add_method('GetGbr', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMaxDelay() const [member function]
-    cls.add_method('GetMaxDelay', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: double ns3::BearerQosParameters::GetMbr() const [member function]
-    cls.add_method('GetMbr', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: int ns3::BearerQosParameters::GetQci() const [member function]
-    cls.add_method('GetQci', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionCapability(bool apec) [member function]
-    cls.add_method('SetArpPreEmptionCapability', 
-                   'void', 
-                   [param('bool', 'apec')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetArpPreEmptionVulnerability(bool apev) [member function]
-    cls.add_method('SetArpPreEmptionVulnerability', 
-                   'void', 
-                   [param('bool', 'apev')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetBearerQosType(ns3::BearerQosParameters::BearerQosType QosType) [member function]
-    cls.add_method('SetBearerQosType', 
-                   'void', 
-                   [param('ns3::BearerQosParameters::BearerQosType', 'QosType')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetGbr(double gbr) [member function]
-    cls.add_method('SetGbr', 
-                   'void', 
-                   [param('double', 'gbr')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMaxDelay(double targetDelay) [member function]
-    cls.add_method('SetMaxDelay', 
-                   'void', 
-                   [param('double', 'targetDelay')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetMbr(double mbr) [member function]
-    cls.add_method('SetMbr', 
-                   'void', 
-                   [param('double', 'mbr')])
-    ## bearer-qos-parameters.h: void ns3::BearerQosParameters::SetQci(int qci) [member function]
-    cls.add_method('SetQci', 
-                   'void', 
-                   [param('int', 'qci')])
-    return
-
-def register_Ns3ChannelRealization_methods(root_module, cls):
-    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization(ns3::ChannelRealization const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ChannelRealization const &', 'arg0')])
-    ## channel-realization.h: ns3::ChannelRealization::ChannelRealization() [constructor]
-    cls.add_constructor([])
-    ## channel-realization.h: ns3::Ptr<ns3::JakesFadingLossModel> ns3::ChannelRealization::GetJakesFadingLossModel() [member function]
-    cls.add_method('GetJakesFadingLossModel', 
-                   'ns3::Ptr< ns3::JakesFadingLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::PathLossModel> ns3::ChannelRealization::GetPathLossModel() [member function]
-    cls.add_method('GetPathLossModel', 
-                   'ns3::Ptr< ns3::PathLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::PenetrationLossModel> ns3::ChannelRealization::GetPenetrationLossModel() [member function]
-    cls.add_method('GetPenetrationLossModel', 
-                   'ns3::Ptr< ns3::PenetrationLossModel >', 
-                   [])
-    ## channel-realization.h: ns3::Ptr<ns3::ShadowingLossModel> ns3::ChannelRealization::GetShadowingLossModel() [member function]
-    cls.add_method('GetShadowingLossModel', 
-                   'ns3::Ptr< ns3::ShadowingLossModel >', 
-                   [])
-    ## channel-realization.h: static ns3::TypeId ns3::ChannelRealization::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## channel-realization.h: void ns3::ChannelRealization::SetJakesFadingLossModel(ns3::Ptr<ns3::JakesFadingLossModel> l) [member function]
-    cls.add_method('SetJakesFadingLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::JakesFadingLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetPathLossModel(ns3::Ptr<ns3::PathLossModel> l) [member function]
-    cls.add_method('SetPathLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PathLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetPenetrationLossModel(ns3::Ptr<ns3::PenetrationLossModel> l) [member function]
-    cls.add_method('SetPenetrationLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PenetrationLossModel >', 'l')])
-    ## channel-realization.h: void ns3::ChannelRealization::SetShadowingLossModel(ns3::Ptr<ns3::ShadowingLossModel> l) [member function]
-    cls.add_method('SetShadowingLossModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::ShadowingLossModel >', 'l')])
-    return
-
-def register_Ns3DeviceEnergyModel_methods(root_module, cls):
-    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel(ns3::DeviceEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DeviceEnergyModel const &', 'arg0')])
-    ## device-energy-model.h: ns3::DeviceEnergyModel::DeviceEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetCurrentA() const [member function]
-    cls.add_method('GetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## device-energy-model.h: static ns3::TypeId ns3::DeviceEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: void ns3::DeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## device-energy-model.h: double ns3::DeviceEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DiscreteTimeLossModel_methods(root_module, cls):
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel(ns3::DiscreteTimeLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::DiscreteTimeLossModel const &', 'arg0')])
-    ## discrete-time-loss-model.h: ns3::DiscreteTimeLossModel::DiscreteTimeLossModel() [constructor]
-    cls.add_constructor([])
-    ## discrete-time-loss-model.h: ns3::Time ns3::DiscreteTimeLossModel::GetLastUpdate() [member function]
-    cls.add_method('GetLastUpdate', 
-                   'ns3::Time', 
-                   [])
-    ## discrete-time-loss-model.h: double ns3::DiscreteTimeLossModel::GetSamplingPeriod() [member function]
-    cls.add_method('GetSamplingPeriod', 
-                   'double', 
-                   [])
-    ## discrete-time-loss-model.h: static ns3::TypeId ns3::DiscreteTimeLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## discrete-time-loss-model.h: bool ns3::DiscreteTimeLossModel::NeedForUpdate() [member function]
-    cls.add_method('NeedForUpdate', 
-                   'bool', 
-                   [])
-    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetLastUpdate() [member function]
-    cls.add_method('SetLastUpdate', 
-                   'void', 
-                   [])
-    ## discrete-time-loss-model.h: void ns3::DiscreteTimeLossModel::SetSamplingPeriod(double sp) [member function]
-    cls.add_method('SetSamplingPeriod', 
-                   'void', 
-                   [param('double', 'sp')])
-    return
-
-def register_Ns3EnergySource_methods(root_module, cls):
-    ## energy-source.h: ns3::EnergySource::EnergySource(ns3::EnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySource const &', 'arg0')])
-    ## energy-source.h: ns3::EnergySource::EnergySource() [constructor]
-    cls.add_constructor([])
-    ## energy-source.h: void ns3::EnergySource::AppendDeviceEnergyModel(ns3::Ptr<ns3::DeviceEnergyModel> deviceEnergyModelPtr) [member function]
-    cls.add_method('AppendDeviceEnergyModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::DeviceEnergyModel >', 'deviceEnergyModelPtr')])
-    ## energy-source.h: void ns3::EnergySource::DisposeDeviceModels() [member function]
-    cls.add_method('DisposeDeviceModels', 
-                   'void', 
-                   [])
-    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(ns3::TypeId tid) [member function]
-    cls.add_method('FindDeviceEnergyModels', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('ns3::TypeId', 'tid')])
-    ## energy-source.h: ns3::DeviceEnergyModelContainer ns3::EnergySource::FindDeviceEnergyModels(std::string name) [member function]
-    cls.add_method('FindDeviceEnergyModels', 
-                   'ns3::DeviceEnergyModelContainer', 
-                   [param('std::string', 'name')])
-    ## energy-source.h: double ns3::EnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-source.h: ns3::Ptr<ns3::Node> ns3::EnergySource::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True)
-    ## energy-source.h: double ns3::EnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: double ns3::EnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## energy-source.h: static ns3::TypeId ns3::EnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## energy-source.h: void ns3::EnergySource::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## energy-source.h: void ns3::EnergySource::StartDeviceModels() [member function]
-    cls.add_method('StartDeviceModels', 
-                   'void', 
-                   [])
-    ## energy-source.h: void ns3::EnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## energy-source.h: void ns3::EnergySource::BreakDeviceEnergyModelRefCycle() [member function]
-    cls.add_method('BreakDeviceEnergyModelRefCycle', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: double ns3::EnergySource::CalculateTotalCurrent() [member function]
-    cls.add_method('CalculateTotalCurrent', 
-                   'double', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::NotifyEnergyDrained() [member function]
-    cls.add_method('NotifyEnergyDrained', 
-                   'void', 
-                   [], 
-                   visibility='protected')
-    ## energy-source.h: void ns3::EnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnergySourceContainer_methods(root_module, cls):
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'arg0')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer() [constructor]
-    cls.add_constructor([])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::Ptr<ns3::EnergySource> source) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(std::string sourceName) [constructor]
-    cls.add_constructor([param('std::string', 'sourceName')])
-    ## energy-source-container.h: ns3::EnergySourceContainer::EnergySourceContainer(ns3::EnergySourceContainer const & a, ns3::EnergySourceContainer const & b) [constructor]
-    cls.add_constructor([param('ns3::EnergySourceContainer const &', 'a'), param('ns3::EnergySourceContainer const &', 'b')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::EnergySourceContainer container) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::EnergySourceContainer', 'container')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')])
-    ## energy-source-container.h: void ns3::EnergySourceContainer::Add(std::string sourceName) [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('std::string', 'sourceName')])
-    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::Begin() const [member function]
-    cls.add_method('Begin', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: __gnu_cxx::__normal_iterator<const ns3::Ptr<ns3::EnergySource>*,std::vector<ns3::Ptr<ns3::EnergySource>, std::allocator<ns3::Ptr<ns3::EnergySource> > > > ns3::EnergySourceContainer::End() const [member function]
-    cls.add_method('End', 
-                   '__gnu_cxx::__normal_iterator< ns3::Ptr< ns3::EnergySource > const, std::vector< ns3::Ptr< ns3::EnergySource > > >', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: ns3::Ptr<ns3::EnergySource> ns3::EnergySourceContainer::Get(uint32_t i) const [member function]
-    cls.add_method('Get', 
-                   'ns3::Ptr< ns3::EnergySource >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## energy-source-container.h: uint32_t ns3::EnergySourceContainer::GetN() const [member function]
-    cls.add_method('GetN', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## energy-source-container.h: static ns3::TypeId ns3::EnergySourceContainer::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## energy-source-container.h: void ns3::EnergySourceContainer::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## energy-source-container.h: void ns3::EnergySourceContainer::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3FlowClassifier_methods(root_module, cls):
-    ## flow-classifier.h: ns3::FlowClassifier::FlowClassifier() [constructor]
-    cls.add_constructor([])
-    ## flow-classifier.h: void ns3::FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## flow-classifier.h: ns3::FlowId ns3::FlowClassifier::GetNewFlowId() [member function]
-    cls.add_method('GetNewFlowId', 
-                   'ns3::FlowId', 
-                   [], 
-                   visibility='protected')
-    return
-
-def register_Ns3FlowMonitor_methods(root_module, cls):
-    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor(ns3::FlowMonitor const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitor const &', 'arg0')])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowMonitor() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor.h: void ns3::FlowMonitor::AddProbe(ns3::Ptr<ns3::FlowProbe> probe) [member function]
-    cls.add_method('AddProbe', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe')])
-    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets() [member function]
-    cls.add_method('CheckForLostPackets', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::CheckForLostPackets(ns3::Time maxDelay) [member function]
-    cls.add_method('CheckForLostPackets', 
-                   'void', 
-                   [param('ns3::Time', 'maxDelay')])
-    ## flow-monitor.h: std::vector<ns3::Ptr<ns3::FlowProbe>, std::allocator<ns3::Ptr<ns3::FlowProbe> > > ns3::FlowMonitor::GetAllProbes() const [member function]
-    cls.add_method('GetAllProbes', 
-                   'std::vector< ns3::Ptr< ns3::FlowProbe > >', 
-                   [], 
-                   is_const=True)
-    ## flow-monitor.h: std::map<unsigned int, ns3::FlowMonitor::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowMonitor::FlowStats> > > ns3::FlowMonitor::GetFlowStats() const [member function]
-    cls.add_method('GetFlowStats', 
-                   'std::map< unsigned int, ns3::FlowMonitor::FlowStats >', 
-                   [], 
-                   is_const=True)
-    ## flow-monitor.h: ns3::TypeId ns3::FlowMonitor::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## flow-monitor.h: static ns3::TypeId ns3::FlowMonitor::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportDrop(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize, uint32_t reasonCode) [member function]
-    cls.add_method('ReportDrop', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportFirstTx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportFirstTx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportForwarding(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportForwarding', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::ReportLastRx(ns3::Ptr<ns3::FlowProbe> probe, ns3::FlowId flowId, ns3::FlowPacketId packetId, uint32_t packetSize) [member function]
-    cls.add_method('ReportLastRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowProbe >', 'probe'), param('ns3::FlowId', 'flowId'), param('ns3::FlowPacketId', 'packetId'), param('uint32_t', 'packetSize')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlFile(std::string fileName, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlFile', 
-                   'void', 
-                   [param('std::string', 'fileName'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SerializeToXmlStream(std::ostream & os, int indent, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: std::string ns3::FlowMonitor::SerializeToXmlString(int indent, bool enableHistograms, bool enableProbes) [member function]
-    cls.add_method('SerializeToXmlString', 
-                   'std::string', 
-                   [param('int', 'indent'), param('bool', 'enableHistograms'), param('bool', 'enableProbes')])
-    ## flow-monitor.h: void ns3::FlowMonitor::SetFlowClassifier(ns3::Ptr<ns3::FlowClassifier> classifier) [member function]
-    cls.add_method('SetFlowClassifier', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::FlowClassifier >', 'classifier')])
-    ## flow-monitor.h: void ns3::FlowMonitor::Start(ns3::Time const & time) [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [param('ns3::Time const &', 'time')])
-    ## flow-monitor.h: void ns3::FlowMonitor::StartRightNow() [member function]
-    cls.add_method('StartRightNow', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::Stop(ns3::Time const & time) [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [param('ns3::Time const &', 'time')])
-    ## flow-monitor.h: void ns3::FlowMonitor::StopRightNow() [member function]
-    cls.add_method('StopRightNow', 
-                   'void', 
-                   [])
-    ## flow-monitor.h: void ns3::FlowMonitor::NotifyConstructionCompleted() [member function]
-    cls.add_method('NotifyConstructionCompleted', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3FlowMonitorFlowStats_methods(root_module, cls):
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats() [constructor]
-    cls.add_constructor([])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::FlowStats(ns3::FlowMonitor::FlowStats const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowMonitor::FlowStats const &', 'arg0')])
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::bytesDropped [variable]
-    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long >', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delayHistogram [variable]
-    cls.add_instance_attribute('delayHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::delaySum [variable]
-    cls.add_instance_attribute('delaySum', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::flowInterruptionsHistogram [variable]
-    cls.add_instance_attribute('flowInterruptionsHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterHistogram [variable]
-    cls.add_instance_attribute('jitterHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::jitterSum [variable]
-    cls.add_instance_attribute('jitterSum', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lastDelay [variable]
-    cls.add_instance_attribute('lastDelay', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::lostPackets [variable]
-    cls.add_instance_attribute('lostPackets', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetSizeHistogram [variable]
-    cls.add_instance_attribute('packetSizeHistogram', 'ns3::Histogram', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::packetsDropped [variable]
-    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxBytes [variable]
-    cls.add_instance_attribute('rxBytes', 'uint64_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::rxPackets [variable]
-    cls.add_instance_attribute('rxPackets', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstRxPacket [variable]
-    cls.add_instance_attribute('timeFirstRxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeFirstTxPacket [variable]
-    cls.add_instance_attribute('timeFirstTxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastRxPacket [variable]
-    cls.add_instance_attribute('timeLastRxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timeLastTxPacket [variable]
-    cls.add_instance_attribute('timeLastTxPacket', 'ns3::Time', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::timesForwarded [variable]
-    cls.add_instance_attribute('timesForwarded', 'uint32_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txBytes [variable]
-    cls.add_instance_attribute('txBytes', 'uint64_t', is_const=False)
-    ## flow-monitor.h: ns3::FlowMonitor::FlowStats::txPackets [variable]
-    cls.add_instance_attribute('txPackets', 'uint32_t', is_const=False)
-    return
-
-def register_Ns3FlowProbe_methods(root_module, cls):
-    ## flow-probe.h: void ns3::FlowProbe::AddPacketDropStats(ns3::FlowId flowId, uint32_t packetSize, uint32_t reasonCode) [member function]
-    cls.add_method('AddPacketDropStats', 
-                   'void', 
-                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('uint32_t', 'reasonCode')])
-    ## flow-probe.h: void ns3::FlowProbe::AddPacketStats(ns3::FlowId flowId, uint32_t packetSize, ns3::Time delayFromFirstProbe) [member function]
-    cls.add_method('AddPacketStats', 
-                   'void', 
-                   [param('ns3::FlowId', 'flowId'), param('uint32_t', 'packetSize'), param('ns3::Time', 'delayFromFirstProbe')])
-    ## flow-probe.h: std::map<unsigned int, ns3::FlowProbe::FlowStats, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, ns3::FlowProbe::FlowStats> > > ns3::FlowProbe::GetStats() const [member function]
-    cls.add_method('GetStats', 
-                   'std::map< unsigned int, ns3::FlowProbe::FlowStats >', 
-                   [], 
-                   is_const=True)
-    ## flow-probe.h: void ns3::FlowProbe::SerializeToXmlStream(std::ostream & os, int indent, uint32_t index) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent'), param('uint32_t', 'index')], 
-                   is_const=True)
-    ## flow-probe.h: ns3::FlowProbe::FlowProbe(ns3::Ptr<ns3::FlowMonitor> flowMonitor) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'flowMonitor')], 
-                        visibility='protected')
-    return
-
-def register_Ns3FlowProbeFlowStats_methods(root_module, cls):
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats(ns3::FlowProbe::FlowStats const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::FlowProbe::FlowStats const &', 'arg0')])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::FlowStats() [constructor]
-    cls.add_constructor([])
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytes [variable]
-    cls.add_instance_attribute('bytes', 'uint64_t', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::bytesDropped [variable]
-    cls.add_instance_attribute('bytesDropped', 'std::vector< unsigned long >', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::delayFromFirstProbeSum [variable]
-    cls.add_instance_attribute('delayFromFirstProbeSum', 'ns3::Time', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::packets [variable]
-    cls.add_instance_attribute('packets', 'uint32_t', is_const=False)
-    ## flow-probe.h: ns3::FlowProbe::FlowStats::packetsDropped [variable]
-    cls.add_instance_attribute('packetsDropped', 'std::vector< unsigned int >', is_const=False)
-    return
-
-def register_Ns3GlobalRouter_methods(root_module, cls):
-    ## global-router-interface.h: static ns3::TypeId ns3::GlobalRouter::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## global-router-interface.h: ns3::GlobalRouter::GlobalRouter() [constructor]
-    cls.add_constructor([])
-    ## global-router-interface.h: void ns3::GlobalRouter::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4GlobalRouting> routing) [member function]
-    cls.add_method('SetRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4GlobalRouting >', 'routing')])
-    ## global-router-interface.h: ns3::Ptr<ns3::Ipv4GlobalRouting> ns3::GlobalRouter::GetRoutingProtocol() [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv4GlobalRouting >', 
-                   [])
-    ## global-router-interface.h: ns3::Ipv4Address ns3::GlobalRouter::GetRouterId() const [member function]
-    cls.add_method('GetRouterId', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::DiscoverLSAs() [member function]
-    cls.add_method('DiscoverLSAs', 
-                   'uint32_t', 
-                   [])
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNumLSAs() const [member function]
-    cls.add_method('GetNumLSAs', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## global-router-interface.h: bool ns3::GlobalRouter::GetLSA(uint32_t n, ns3::GlobalRoutingLSA & lsa) const [member function]
-    cls.add_method('GetLSA', 
-                   'bool', 
-                   [param('uint32_t', 'n'), param('ns3::GlobalRoutingLSA &', 'lsa')], 
-                   is_const=True)
-    ## global-router-interface.h: void ns3::GlobalRouter::InjectRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
-    cls.add_method('InjectRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
-    ## global-router-interface.h: uint32_t ns3::GlobalRouter::GetNInjectedRoutes() [member function]
-    cls.add_method('GetNInjectedRoutes', 
-                   'uint32_t', 
-                   [])
-    ## global-router-interface.h: ns3::Ipv4RoutingTableEntry * ns3::GlobalRouter::GetInjectedRoute(uint32_t i) [member function]
-    cls.add_method('GetInjectedRoute', 
-                   retval('ns3::Ipv4RoutingTableEntry *', caller_owns_return=False), 
-                   [param('uint32_t', 'i')])
-    ## global-router-interface.h: void ns3::GlobalRouter::RemoveInjectedRoute(uint32_t i) [member function]
-    cls.add_method('RemoveInjectedRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## global-router-interface.h: bool ns3::GlobalRouter::WithdrawRoute(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask) [member function]
-    cls.add_method('WithdrawRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask')])
-    ## global-router-interface.h: void ns3::GlobalRouter::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3IdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage(ns3::IdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::IdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::IdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetDestinationDevice() [member function]
-    cls.add_method('GetDestinationDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## ideal-control-messages.h: ns3::IdealControlMessage::MessageType ns3::IdealControlMessage::GetMessageType() [member function]
-    cls.add_method('GetMessageType', 
-                   'ns3::IdealControlMessage::MessageType', 
-                   [])
-    ## ideal-control-messages.h: ns3::Ptr<ns3::LteNetDevice> ns3::IdealControlMessage::GetSourceDevice() [member function]
-    cls.add_method('GetSourceDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetDestinationDevice(ns3::Ptr<ns3::LteNetDevice> dst) [member function]
-    cls.add_method('SetDestinationDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'dst')])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetMessageType(ns3::IdealControlMessage::MessageType type) [member function]
-    cls.add_method('SetMessageType', 
-                   'void', 
-                   [param('ns3::IdealControlMessage::MessageType', 'type')])
-    ## ideal-control-messages.h: void ns3::IdealControlMessage::SetSourceDevice(ns3::Ptr<ns3::LteNetDevice> src) [member function]
-    cls.add_method('SetSourceDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'src')])
-    return
-
-def register_Ns3Ipv4FlowClassifier_methods(root_module, cls):
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::Ipv4FlowClassifier() [constructor]
-    cls.add_constructor([])
-    ## ipv4-flow-classifier.h: bool ns3::Ipv4FlowClassifier::Classify(ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet const> ipPayload, uint32_t * out_flowId, uint32_t * out_packetId) [member function]
-    cls.add_method('Classify', 
-                   'bool', 
-                   [param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet const >', 'ipPayload'), param('uint32_t *', 'out_flowId'), param('uint32_t *', 'out_packetId')])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple ns3::Ipv4FlowClassifier::FindFlow(ns3::FlowId flowId) const [member function]
-    cls.add_method('FindFlow', 
-                   'ns3::Ipv4FlowClassifier::FiveTuple', 
-                   [param('ns3::FlowId', 'flowId')], 
-                   is_const=True)
-    ## ipv4-flow-classifier.h: void ns3::Ipv4FlowClassifier::SerializeToXmlStream(std::ostream & os, int indent) const [member function]
-    cls.add_method('SerializeToXmlStream', 
-                   'void', 
-                   [param('std::ostream &', 'os'), param('int', 'indent')], 
-                   is_const=True, is_virtual=True)
-    return
-
-def register_Ns3Ipv4FlowClassifierFiveTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    cls.add_binary_comparison_operator('<')
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple() [constructor]
-    cls.add_constructor([])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::FiveTuple(ns3::Ipv4FlowClassifier::FiveTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4FlowClassifier::FiveTuple const &', 'arg0')])
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationAddress [variable]
-    cls.add_instance_attribute('destinationAddress', 'ns3::Ipv4Address', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::destinationPort [variable]
-    cls.add_instance_attribute('destinationPort', 'uint16_t', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::protocol [variable]
-    cls.add_instance_attribute('protocol', 'uint8_t', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourceAddress [variable]
-    cls.add_instance_attribute('sourceAddress', 'ns3::Ipv4Address', is_const=False)
-    ## ipv4-flow-classifier.h: ns3::Ipv4FlowClassifier::FiveTuple::sourcePort [variable]
-    cls.add_instance_attribute('sourcePort', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3Ipv4FlowProbe_methods(root_module, cls):
-    ## ipv4-flow-probe.h: ns3::Ipv4FlowProbe::Ipv4FlowProbe(ns3::Ptr<ns3::FlowMonitor> monitor, ns3::Ptr<ns3::Ipv4FlowClassifier> classifier, ns3::Ptr<ns3::Node> node) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::FlowMonitor >', 'monitor'), param('ns3::Ptr< ns3::Ipv4FlowClassifier >', 'classifier'), param('ns3::Ptr< ns3::Node >', 'node')])
-    return
-
-def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
-    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
-    cls.add_method('GetDefaultRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [])
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetMetric(uint32_t index) [member function]
-    cls.add_method('GetMetric', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoutingTableEntry ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
-    cls.add_method('GetMulticastRoute', 
-                   'ns3::Ipv4MulticastRoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
-    cls.add_method('GetNMulticastRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() const [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-static-routing.h: ns3::Ipv4RoutingTableEntry ns3::Ipv4StaticRouting::GetRoute(uint32_t i) const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv4RoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-static-routing.h: static ns3::TypeId ns3::Ipv4StaticRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'index')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'outputInterface')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('SetDefaultRoute', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv6StaticRouting_methods(root_module, cls):
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting(ns3::Ipv6StaticRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6StaticRouting const &', 'arg0')])
-    ## ipv6-static-routing.h: ns3::Ipv6StaticRouting::Ipv6StaticRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dest'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddHostRouteTo(ns3::Ipv6Address dest, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface, std::vector<unsigned int, std::allocator<unsigned int> > outputInterfaces) [member function]
-    cls.add_method('AddMulticastRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::AddNetworkRouteTo(ns3::Ipv6Address network, ns3::Ipv6Prefix networkPrefix, uint32_t interface, uint32_t metric=0) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'networkPrefix'), param('uint32_t', 'interface'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetDefaultRoute() [member function]
-    cls.add_method('GetDefaultRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [])
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetMetric(uint32_t index) [member function]
-    cls.add_method('GetMetric', 
-                   'uint32_t', 
-                   [param('uint32_t', 'index')])
-    ## ipv6-static-routing.h: ns3::Ipv6MulticastRoutingTableEntry ns3::Ipv6StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
-    cls.add_method('GetMulticastRoute', 
-                   'ns3::Ipv6MulticastRoutingTableEntry', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNMulticastRoutes() const [member function]
-    cls.add_method('GetNMulticastRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv6-static-routing.h: uint32_t ns3::Ipv6StaticRouting::GetNRoutes() [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [])
-    ## ipv6-static-routing.h: ns3::Ipv6RoutingTableEntry ns3::Ipv6StaticRouting::GetRoute(uint32_t i) [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv6RoutingTableEntry', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: static ns3::TypeId ns3::Ipv6StaticRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::HasNetworkDest(ns3::Ipv6Address dest, uint32_t interfaceIndex) [member function]
-    cls.add_method('HasNetworkDest', 
-                   'bool', 
-                   [param('ns3::Ipv6Address', 'dest'), param('uint32_t', 'interfaceIndex')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyAddRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyRemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RemoveMulticastRoute(ns3::Ipv6Address origin, ns3::Ipv6Address group, uint32_t inputInterface) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'bool', 
-                   [param('ns3::Ipv6Address', 'origin'), param('ns3::Ipv6Address', 'group'), param('uint32_t', 'inputInterface')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveMulticastRoute(uint32_t i) [member function]
-    cls.add_method('RemoveMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::RemoveRoute(ns3::Ipv6Address network, ns3::Ipv6Prefix prefix, uint32_t ifIndex, ns3::Ipv6Address prefixToUse) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'network'), param('ns3::Ipv6Prefix', 'prefix'), param('uint32_t', 'ifIndex'), param('ns3::Ipv6Address', 'prefixToUse')])
-    ## ipv6-static-routing.h: bool ns3::Ipv6StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6StaticRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv6Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
-    cls.add_method('SetDefaultMulticastRoute', 
-                   'void', 
-                   [param('uint32_t', 'outputInterface')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetDefaultRoute(ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address(((const char*)"::")), uint32_t metric=0) [member function]
-    cls.add_method('SetDefaultRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address(((const char*)"::"))'), param('uint32_t', 'metric', default_value='0')])
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
-    cls.add_method('SetIpv6', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_virtual=True)
-    ## ipv6-static-routing.h: void ns3::Ipv6StaticRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3JakesFadingLossModel_methods(root_module, cls):
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel(ns3::JakesFadingLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::JakesFadingLossModel const &', 'arg0')])
-    ## jakes-fading-loss-model.h: ns3::JakesFadingLossModel::JakesFadingLossModel() [constructor]
-    cls.add_constructor([])
-    ## jakes-fading-loss-model.h: ns3::Ptr<ns3::LtePhy> ns3::JakesFadingLossModel::GetPhy() [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::LtePhy >', 
-                   [])
-    ## jakes-fading-loss-model.h: static ns3::TypeId ns3::JakesFadingLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## jakes-fading-loss-model.h: double ns3::JakesFadingLossModel::GetValue(int subChannel) [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [param('int', 'subChannel')])
-    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## jakes-fading-loss-model.h: void ns3::JakesFadingLossModel::SetValue() [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3LiIonEnergySource_methods(root_module, cls):
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource(ns3::LiIonEnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LiIonEnergySource const &', 'arg0')])
-    ## li-ion-energy-source.h: ns3::LiIonEnergySource::LiIonEnergySource() [constructor]
-    cls.add_constructor([])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DecreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('DecreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: ns3::Time ns3::LiIonEnergySource::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: double ns3::LiIonEnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## li-ion-energy-source.h: static ns3::TypeId ns3::LiIonEnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::IncreaseRemainingEnergy(double energyJ) [member function]
-    cls.add_method('IncreaseRemainingEnergy', 
-                   'void', 
-                   [param('double', 'energyJ')], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
-    cls.add_method('SetInitialEnergy', 
-                   'void', 
-                   [param('double', 'initialEnergyJ')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::SetInitialSupplyVoltage(double supplyVoltageV) [member function]
-    cls.add_method('SetInitialSupplyVoltage', 
-                   'void', 
-                   [param('double', 'supplyVoltageV')])
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## li-ion-energy-source.h: void ns3::LiIonEnergySource::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3LteMacQueue_methods(root_module, cls):
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(ns3::LteMacQueue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteMacQueue const &', 'arg0')])
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue() [constructor]
-    cls.add_constructor([])
-    ## lte-mac-queue.h: ns3::LteMacQueue::LteMacQueue(uint32_t maxSize) [constructor]
-    cls.add_constructor([param('uint32_t', 'maxSize')])
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue() [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [])
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Dequeue(uint32_t availableByte) [member function]
-    cls.add_method('Dequeue', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [param('uint32_t', 'availableByte')])
-    ## lte-mac-queue.h: bool ns3::LteMacQueue::Enqueue(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetMaxSize() const [member function]
-    cls.add_method('GetMaxSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetNBytes() const [member function]
-    cls.add_method('GetNBytes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: std::deque<ns3::LteMacQueue::QueueElement, std::allocator<ns3::LteMacQueue::QueueElement> > const & ns3::LteMacQueue::GetPacketQueue() const [member function]
-    cls.add_method('GetPacketQueue', 
-                   'std::deque< ns3::LteMacQueue::QueueElement > const &', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetQueueLengthWithMACOverhead() [member function]
-    cls.add_method('GetQueueLengthWithMACOverhead', 
-                   'uint32_t', 
-                   [])
-    ## lte-mac-queue.h: uint32_t ns3::LteMacQueue::GetSize() const [member function]
-    cls.add_method('GetSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: static ns3::TypeId ns3::LteMacQueue::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-mac-queue.h: bool ns3::LteMacQueue::IsEmpty() const [member function]
-    cls.add_method('IsEmpty', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: ns3::Ptr<ns3::Packet> ns3::LteMacQueue::Peek() const [member function]
-    cls.add_method('Peek', 
-                   'ns3::Ptr< ns3::Packet >', 
-                   [], 
-                   is_const=True)
-    ## lte-mac-queue.h: void ns3::LteMacQueue::SetMaxSize(uint32_t maxSize) [member function]
-    cls.add_method('SetMaxSize', 
-                   'void', 
-                   [param('uint32_t', 'maxSize')])
-    return
-
-def register_Ns3LtePhy_methods(root_module, cls):
-    ## lte-phy.h: ns3::LtePhy::LtePhy(ns3::LtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LtePhy const &', 'arg0')])
-    ## lte-phy.h: ns3::LtePhy::LtePhy() [constructor]
-    cls.add_constructor([])
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoSetDownlinkSubChannels() [member function]
-    cls.add_method('DoSetDownlinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::DoSetUplinkSubChannels() [member function]
-    cls.add_method('DoSetUplinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-phy.h: ns3::Ptr<ns3::LteNetDevice> ns3::LtePhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetDownlinkChannel() [member function]
-    cls.add_method('GetDownlinkChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetDownlinkSpectrumPhy() [member function]
-    cls.add_method('GetDownlinkSpectrumPhy', 
-                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
-                   [])
-    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetDownlinkSubChannels() [member function]
-    cls.add_method('GetDownlinkSubChannels', 
-                   'std::vector< int >', 
-                   [])
-    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrFrames() const [member function]
-    cls.add_method('GetNrFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: uint32_t ns3::LtePhy::GetNrSubFrames() const [member function]
-    cls.add_method('GetNrSubFrames', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: double ns3::LtePhy::GetTti() const [member function]
-    cls.add_method('GetTti', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## lte-phy.h: double ns3::LtePhy::GetTxPower() [member function]
-    cls.add_method('GetTxPower', 
-                   'double', 
-                   [])
-    ## lte-phy.h: static ns3::TypeId ns3::LtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LtePhy::GetUplinkChannel() [member function]
-    cls.add_method('GetUplinkChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-phy.h: ns3::Ptr<ns3::LteSpectrumPhy> ns3::LtePhy::GetUplinkSpectrumPhy() [member function]
-    cls.add_method('GetUplinkSpectrumPhy', 
-                   'ns3::Ptr< ns3::LteSpectrumPhy >', 
-                   [])
-    ## lte-phy.h: std::vector<int, std::allocator<int> > ns3::LtePhy::GetUplinkSubChannels() [member function]
-    cls.add_method('GetUplinkSubChannels', 
-                   'std::vector< int >', 
-                   [])
-    ## lte-phy.h: void ns3::LtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: bool ns3::LtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-phy.h: void ns3::LtePhy::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetDownlinkChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
-    cls.add_method('SetDownlinkSpectrumPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
-    ## lte-phy.h: void ns3::LtePhy::SetDownlinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetDownlinkSubChannels', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    ## lte-phy.h: void ns3::LtePhy::SetNrFrames(uint32_t nrFrames) [member function]
-    cls.add_method('SetNrFrames', 
-                   'void', 
-                   [param('uint32_t', 'nrFrames')])
-    ## lte-phy.h: void ns3::LtePhy::SetNrSubFrames(uint32_t nrSubFrames) [member function]
-    cls.add_method('SetNrSubFrames', 
-                   'void', 
-                   [param('uint32_t', 'nrSubFrames')])
-    ## lte-phy.h: void ns3::LtePhy::SetTti(double tti) [member function]
-    cls.add_method('SetTti', 
-                   'void', 
-                   [param('double', 'tti')])
-    ## lte-phy.h: void ns3::LtePhy::SetTxPower(double pw) [member function]
-    cls.add_method('SetTxPower', 
-                   'void', 
-                   [param('double', 'pw')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetUplinkChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkSpectrumPhy(ns3::Ptr<ns3::LteSpectrumPhy> s) [member function]
-    cls.add_method('SetUplinkSpectrumPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteSpectrumPhy >', 's')])
-    ## lte-phy.h: void ns3::LtePhy::SetUplinkSubChannels(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetUplinkSubChannels', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    return
-
-def register_Ns3LtePropagationLossModel_methods(root_module, cls):
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel(ns3::LtePropagationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LtePropagationLossModel const &', 'arg0')])
-    ## lte-propagation-loss-model.h: ns3::LtePropagationLossModel::LtePropagationLossModel() [constructor]
-    cls.add_constructor([])
-    ## lte-propagation-loss-model.h: void ns3::LtePropagationLossModel::CreateChannelRealization(ns3::Ptr<const ns3::MobilityModel> enbMobility, ns3::Ptr<const ns3::MobilityModel> ueMobility) [member function]
-    cls.add_method('CreateChannelRealization', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'enbMobility'), param('ns3::Ptr< ns3::MobilityModel const >', 'ueMobility')])
-    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::ChannelRealization> ns3::LtePropagationLossModel::GetChannelRealization(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('GetChannelRealization', 
-                   'ns3::Ptr< ns3::ChannelRealization >', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True)
-    ## lte-propagation-loss-model.h: static ns3::TypeId ns3::LtePropagationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-propagation-loss-model.h: ns3::Ptr<ns3::SpectrumValue> ns3::LtePropagationLossModel::DoCalcRxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> txPsd, ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) const [member function]
-    cls.add_method('DoCalcRxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'txPsd'), param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3LteSpectrumPhy_methods(root_module, cls):
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy(ns3::LteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::LteSpectrumPhy const &', 'arg0')])
-    ## lte-spectrum-phy.h: ns3::LteSpectrumPhy::LteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumChannel> ns3::LteSpectrumPhy::GetChannel() [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::SpectrumChannel >', 
-                   [])
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::Object> ns3::LteSpectrumPhy::GetMobility() [member function]
-    cls.add_method('GetMobility', 
-                   'ns3::Ptr< ns3::Object >', 
-                   [], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumValue const> ns3::LteSpectrumPhy::GetNoisePowerSpectralDensity() [member function]
-    cls.add_method('GetNoisePowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue const >', 
-                   [])
-    ## lte-spectrum-phy.h: ns3::Ptr<ns3::SpectrumModel const> ns3::LteSpectrumPhy::GetRxSpectrumModel() const [member function]
-    cls.add_method('GetRxSpectrumModel', 
-                   'ns3::Ptr< ns3::SpectrumModel const >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-spectrum-phy.h: ns3::SpectrumType ns3::LteSpectrumPhy::GetSpectrumType() [member function]
-    cls.add_method('GetSpectrumType', 
-                   'ns3::SpectrumType', 
-                   [])
-    ## lte-spectrum-phy.h: static ns3::TypeId ns3::LteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetChannel(ns3::Ptr<ns3::SpectrumChannel> c) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetDevice(ns3::Ptr<ns3::Object> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'd')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetMobility(ns3::Ptr<ns3::Object> m) [member function]
-    cls.add_method('SetMobility', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Object >', 'm')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetNoisePowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue const> noisePsd) [member function]
-    cls.add_method('SetNoisePowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndErrorCallback(ns3::PhyMacRxEndErrorCallback c) [member function]
-    cls.add_method('SetPhyMacRxEndErrorCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxEndErrorCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxEndOkCallback(ns3::PhyMacRxEndOkCallback c) [member function]
-    cls.add_method('SetPhyMacRxEndOkCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxEndOkCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacRxStartCallback(ns3::PhyMacRxStartCallback c) [member function]
-    cls.add_method('SetPhyMacRxStartCallback', 
-                   'void', 
-                   [param('ns3::PhyMacRxStartCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetPhyMacTxEndCallback(ns3::PhyMacTxEndCallback c) [member function]
-    cls.add_method('SetPhyMacTxEndCallback', 
-                   'void', 
-                   [param('ns3::PhyMacTxEndCallback', 'c')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetState(ns3::LteSpectrumPhy::State newState) [member function]
-    cls.add_method('SetState', 
-                   'void', 
-                   [param('ns3::LteSpectrumPhy::State', 'newState')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::SetTxPowerSpectralDensity(ns3::Ptr<ns3::SpectrumValue> txPsd) [member function]
-    cls.add_method('SetTxPowerSpectralDensity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::StartRx(ns3::Ptr<ns3::PacketBurst> pb, ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::SpectrumType st, ns3::Time duration) [member function]
-    cls.add_method('StartRx', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::SpectrumType', 'st'), param('ns3::Time', 'duration')], 
-                   is_virtual=True)
-    ## lte-spectrum-phy.h: bool ns3::LteSpectrumPhy::StartTx(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('StartTx', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')])
-    ## lte-spectrum-phy.h: void ns3::LteSpectrumPhy::EndRx() [member function]
-    cls.add_method('EndRx', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3MacEntity_methods(root_module, cls):
-    ## mac-entity.h: ns3::MacEntity::MacEntity(ns3::MacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::MacEntity const &', 'arg0')])
-    ## mac-entity.h: ns3::MacEntity::MacEntity() [constructor]
-    cls.add_constructor([])
-    ## mac-entity.h: void ns3::MacEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## mac-entity.h: ns3::Ptr<ns3::AmcModule> ns3::MacEntity::GetAmcModule() const [member function]
-    cls.add_method('GetAmcModule', 
-                   'ns3::Ptr< ns3::AmcModule >', 
-                   [], 
-                   is_const=True)
-    ## mac-entity.h: ns3::Ptr<ns3::LteNetDevice> ns3::MacEntity::GetDevice() [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::LteNetDevice >', 
-                   [])
-    ## mac-entity.h: static ns3::TypeId ns3::MacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## mac-entity.h: void ns3::MacEntity::SetAmcModule(ns3::Ptr<ns3::AmcModule> amcModule) [member function]
-    cls.add_method('SetAmcModule', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::AmcModule >', 'amcModule')])
-    ## mac-entity.h: void ns3::MacEntity::SetDevice(ns3::Ptr<ns3::LteNetDevice> d) [member function]
-    cls.add_method('SetDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    return
-
-def register_Ns3PathLossModel_methods(root_module, cls):
-    ## path-loss-model.h: ns3::PathLossModel::PathLossModel(ns3::PathLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PathLossModel const &', 'arg0')])
-    ## path-loss-model.h: ns3::PathLossModel::PathLossModel() [constructor]
-    cls.add_constructor([])
-    ## path-loss-model.h: static ns3::TypeId ns3::PathLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## path-loss-model.h: double ns3::PathLossModel::GetValue(ns3::Ptr<const ns3::MobilityModel> a, ns3::Ptr<const ns3::MobilityModel> b) [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [param('ns3::Ptr< ns3::MobilityModel const >', 'a'), param('ns3::Ptr< ns3::MobilityModel const >', 'b')])
-    ## path-loss-model.h: void ns3::PathLossModel::SetValue(double pl) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'pl')])
-    return
-
-def register_Ns3PdcchMapIdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage(ns3::PdcchMapIdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::PdcchMapIdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: void ns3::PdcchMapIdealControlMessage::AddNewRecord(ns3::PdcchMapIdealControlMessage::Direction direction, int subChannel, ns3::Ptr<ns3::LteNetDevice> ue, double mcs) [member function]
-    cls.add_method('AddNewRecord', 
-                   'void', 
-                   [param('ns3::PdcchMapIdealControlMessage::Direction', 'direction'), param('int', 'subChannel'), param('ns3::Ptr< ns3::LteNetDevice >', 'ue'), param('double', 'mcs')])
-    ## ideal-control-messages.h: std::list<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord,std::allocator<ns3::PdcchMapIdealControlMessage::IdealPdcchRecord> > * ns3::PdcchMapIdealControlMessage::GetMessage() [member function]
-    cls.add_method('GetMessage', 
-                   'std::list< ns3::PdcchMapIdealControlMessage::IdealPdcchRecord > *', 
-                   [])
-    return
-
-def register_Ns3PdcchMapIdealControlMessageIdealPdcchRecord_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::IdealPdcchRecord(ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PdcchMapIdealControlMessage::IdealPdcchRecord const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_direction [variable]
-    cls.add_instance_attribute('m_direction', 'ns3::PdcchMapIdealControlMessage::Direction', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_idSubChannel [variable]
-    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_mcsIndex [variable]
-    cls.add_instance_attribute('m_mcsIndex', 'double', is_const=False)
-    ## ideal-control-messages.h: ns3::PdcchMapIdealControlMessage::IdealPdcchRecord::m_ue [variable]
-    cls.add_instance_attribute('m_ue', 'ns3::Ptr< ns3::LteNetDevice >', is_const=False)
-    return
-
-def register_Ns3PenetrationLossModel_methods(root_module, cls):
-    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel(ns3::PenetrationLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PenetrationLossModel const &', 'arg0')])
-    ## penetration-loss-model.h: ns3::PenetrationLossModel::PenetrationLossModel() [constructor]
-    cls.add_constructor([])
-    ## penetration-loss-model.h: static ns3::TypeId ns3::PenetrationLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## penetration-loss-model.h: double ns3::PenetrationLossModel::GetValue() [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [])
-    ## penetration-loss-model.h: void ns3::PenetrationLossModel::SetValue(double pnl) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'pnl')])
-    return
-
-def register_Ns3RvBatteryModel_methods(root_module, cls):
-    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel(ns3::RvBatteryModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::RvBatteryModel const &', 'arg0')])
-    ## rv-battery-model.h: ns3::RvBatteryModel::RvBatteryModel() [constructor]
-    cls.add_constructor([])
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetAlpha() const [member function]
-    cls.add_method('GetAlpha', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBatteryLevel() [member function]
-    cls.add_method('GetBatteryLevel', 
-                   'double', 
-                   [])
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetBeta() const [member function]
-    cls.add_method('GetBeta', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetCutoffVoltage() const [member function]
-    cls.add_method('GetCutoffVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetLifetime() const [member function]
-    cls.add_method('GetLifetime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: int ns3::RvBatteryModel::GetNumOfTerms() const [member function]
-    cls.add_method('GetNumOfTerms', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetOpenCircuitVoltage() const [member function]
-    cls.add_method('GetOpenCircuitVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: ns3::Time ns3::RvBatteryModel::GetSamplingInterval() const [member function]
-    cls.add_method('GetSamplingInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## rv-battery-model.h: double ns3::RvBatteryModel::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## rv-battery-model.h: static ns3::TypeId ns3::RvBatteryModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetAlpha(double alpha) [member function]
-    cls.add_method('SetAlpha', 
-                   'void', 
-                   [param('double', 'alpha')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetBeta(double beta) [member function]
-    cls.add_method('SetBeta', 
-                   'void', 
-                   [param('double', 'beta')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetCutoffVoltage(double voltage) [member function]
-    cls.add_method('SetCutoffVoltage', 
-                   'void', 
-                   [param('double', 'voltage')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetNumOfTerms(int num) [member function]
-    cls.add_method('SetNumOfTerms', 
-                   'void', 
-                   [param('int', 'num')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetOpenCircuitVoltage(double voltage) [member function]
-    cls.add_method('SetOpenCircuitVoltage', 
-                   'void', 
-                   [param('double', 'voltage')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::SetSamplingInterval(ns3::Time interval) [member function]
-    cls.add_method('SetSamplingInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## rv-battery-model.h: void ns3::RvBatteryModel::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## rv-battery-model.h: void ns3::RvBatteryModel::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3ShadowingLossModel_methods(root_module, cls):
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(ns3::ShadowingLossModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::ShadowingLossModel const &', 'arg0')])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel() [constructor]
-    cls.add_constructor([])
-    ## shadowing-loss-model.h: ns3::ShadowingLossModel::ShadowingLossModel(double mu, double sigma, double samplingPeriod) [constructor]
-    cls.add_constructor([param('double', 'mu'), param('double', 'sigma'), param('double', 'samplingPeriod')])
-    ## shadowing-loss-model.h: static ns3::TypeId ns3::ShadowingLossModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## shadowing-loss-model.h: double ns3::ShadowingLossModel::GetValue() [member function]
-    cls.add_method('GetValue', 
-                   'double', 
-                   [])
-    ## shadowing-loss-model.h: void ns3::ShadowingLossModel::SetValue(double sh) [member function]
-    cls.add_method('SetValue', 
-                   'void', 
-                   [param('double', 'sh')])
-    return
-
-def register_Ns3SimpleDeviceEnergyModel_methods(root_module, cls):
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel(ns3::SimpleDeviceEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::SimpleDeviceEnergyModel const &', 'arg0')])
-    ## simple-device-energy-model.h: ns3::SimpleDeviceEnergyModel::SimpleDeviceEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: ns3::Ptr<ns3::Node> ns3::SimpleDeviceEnergyModel::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## simple-device-energy-model.h: static ns3::TypeId ns3::SimpleDeviceEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetCurrentA(double current) [member function]
-    cls.add_method('SetCurrentA', 
-                   'void', 
-                   [param('double', 'current')])
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## simple-device-energy-model.h: void ns3::SimpleDeviceEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## simple-device-energy-model.h: double ns3::SimpleDeviceEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UanChannel_methods(root_module, cls):
-    ## uan-channel.h: ns3::UanChannel::UanChannel(ns3::UanChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanChannel const &', 'arg0')])
-    ## uan-channel.h: ns3::UanChannel::UanChannel() [constructor]
-    cls.add_constructor([])
-    ## uan-channel.h: void ns3::UanChannel::AddDevice(ns3::Ptr<ns3::UanNetDevice> dev, ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('AddDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNetDevice >', 'dev'), param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
-    ## uan-channel.h: void ns3::UanChannel::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## uan-channel.h: ns3::Ptr<ns3::NetDevice> ns3::UanChannel::GetDevice(uint32_t i) const [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## uan-channel.h: uint32_t ns3::UanChannel::GetNDevices() const [member function]
-    cls.add_method('GetNDevices', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-channel.h: double ns3::UanChannel::GetNoiseDbHz(double fKhz) [member function]
-    cls.add_method('GetNoiseDbHz', 
-                   'double', 
-                   [param('double', 'fKhz')])
-    ## uan-channel.h: static ns3::TypeId ns3::UanChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-channel.h: void ns3::UanChannel::SetNoiseModel(ns3::Ptr<ns3::UanNoiseModel> noise) [member function]
-    cls.add_method('SetNoiseModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanNoiseModel >', 'noise')])
-    ## uan-channel.h: void ns3::UanChannel::SetPropagationModel(ns3::Ptr<ns3::UanPropModel> prop) [member function]
-    cls.add_method('SetPropagationModel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPropModel >', 'prop')])
-    ## uan-channel.h: void ns3::UanChannel::TxPacket(ns3::Ptr<ns3::UanTransducer> src, ns3::Ptr<ns3::Packet> packet, double txPowerDb, ns3::UanTxMode txmode) [member function]
-    cls.add_method('TxPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'src'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'txPowerDb'), param('ns3::UanTxMode', 'txmode')])
-    ## uan-channel.h: void ns3::UanChannel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3UanModesListChecker_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: ns3::UanModesListChecker::UanModesListChecker(ns3::UanModesListChecker const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesListChecker const &', 'arg0')])
-    return
-
-def register_Ns3UanModesListValue_methods(root_module, cls):
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue() [constructor]
-    cls.add_constructor([])
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesListValue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanModesListValue const &', 'arg0')])
-    ## uan-tx-mode.h: ns3::UanModesListValue::UanModesListValue(ns3::UanModesList const & value) [constructor]
-    cls.add_constructor([param('ns3::UanModesList const &', 'value')])
-    ## uan-tx-mode.h: ns3::Ptr<ns3::AttributeValue> ns3::UanModesListValue::Copy() const [member function]
-    cls.add_method('Copy', 
-                   'ns3::Ptr< ns3::AttributeValue >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-tx-mode.h: bool ns3::UanModesListValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
-    cls.add_method('DeserializeFromString', 
-                   'bool', 
-                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
-                   is_virtual=True)
-    ## uan-tx-mode.h: ns3::UanModesList ns3::UanModesListValue::Get() const [member function]
-    cls.add_method('Get', 
-                   'ns3::UanModesList', 
-                   [], 
-                   is_const=True)
-    ## uan-tx-mode.h: std::string ns3::UanModesListValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
-    cls.add_method('SerializeToString', 
-                   'std::string', 
-                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
-                   is_const=True, is_virtual=True)
-    ## uan-tx-mode.h: void ns3::UanModesListValue::Set(ns3::UanModesList const & value) [member function]
-    cls.add_method('Set', 
-                   'void', 
-                   [param('ns3::UanModesList const &', 'value')])
-    return
-
-def register_Ns3UanNetDevice_methods(root_module, cls):
-    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice(ns3::UanNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UanNetDevice const &', 'arg0')])
-    ## uan-net-device.h: ns3::UanNetDevice::UanNetDevice() [constructor]
-    cls.add_constructor([])
-    ## uan-net-device.h: void ns3::UanNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::Channel> ns3::UanNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: uint32_t ns3::UanNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanMac> ns3::UanNetDevice::GetMac() const [member function]
-    cls.add_method('GetMac', 
-                   'ns3::Ptr< ns3::UanMac >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: uint16_t ns3::UanNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Address ns3::UanNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::Node> ns3::UanNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanPhy> ns3::UanNetDevice::GetPhy() const [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::UanPhy >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: ns3::Ptr<ns3::UanTransducer> ns3::UanNetDevice::GetTransducer() const [member function]
-    cls.add_method('GetTransducer', 
-                   'ns3::Ptr< ns3::UanTransducer >', 
-                   [], 
-                   is_const=True)
-    ## uan-net-device.h: static ns3::TypeId ns3::UanNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-net-device.h: bool ns3::UanNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetChannel(ns3::Ptr<ns3::UanChannel> channel) [member function]
-    cls.add_method('SetChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanChannel >', 'channel')])
-    ## uan-net-device.h: void ns3::UanNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetMac(ns3::Ptr<ns3::UanMac> mac) [member function]
-    cls.add_method('SetMac', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanMac >', 'mac')])
-    ## uan-net-device.h: bool ns3::UanNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetPhy(ns3::Ptr<ns3::UanPhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanPhy >', 'phy')])
-    ## uan-net-device.h: void ns3::UanNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::SetTransducer(ns3::Ptr<ns3::UanTransducer> trans) [member function]
-    cls.add_method('SetTransducer', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UanTransducer >', 'trans')])
-    ## uan-net-device.h: bool ns3::UanNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## uan-net-device.h: void ns3::UanNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> pkt, ns3::UanAddress const & src) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'pkt'), param('ns3::UanAddress const &', 'src')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UeLtePhy_methods(root_module, cls):
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::UeLtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeLtePhy const &', 'arg0')])
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy() [constructor]
-    cls.add_constructor([])
-    ## ue-phy.h: ns3::UeLtePhy::UeLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## ue-phy.h: void ns3::UeLtePhy::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'void', 
-                   [param('std::vector< double >', 'sinr')])
-    ## ue-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::UeLtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::DoSetUplinkSubChannels() [member function]
-    cls.add_method('DoSetUplinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForReception() [member function]
-    cls.add_method('GetSubChannelsForReception', 
-                   'std::vector< int >', 
-                   [])
-    ## ue-phy.h: std::vector<int, std::allocator<int> > ns3::UeLtePhy::GetSubChannelsForTransmission() [member function]
-    cls.add_method('GetSubChannelsForTransmission', 
-                   'std::vector< int >', 
-                   [])
-    ## ue-phy.h: static ns3::TypeId ns3::UeLtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ue-phy.h: void ns3::UeLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## ue-phy.h: bool ns3::UeLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_virtual=True)
-    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForReception(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetSubChannelsForReception', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    ## ue-phy.h: void ns3::UeLtePhy::SetSubChannelsForTransmission(std::vector<int, std::allocator<int> > mask) [member function]
-    cls.add_method('SetSubChannelsForTransmission', 
-                   'void', 
-                   [param('std::vector< int >', 'mask')])
-    return
-
-def register_Ns3UeLteSpectrumPhy_methods(root_module, cls):
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy(ns3::UeLteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeLteSpectrumPhy const &', 'arg0')])
-    ## ue-lte-spectrum-phy.h: ns3::UeLteSpectrumPhy::UeLteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## ue-lte-spectrum-phy.h: void ns3::UeLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_virtual=True)
-    ## ue-lte-spectrum-phy.h: static ns3::TypeId ns3::UeLteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3UeMacEntity_methods(root_module, cls):
-    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity(ns3::UeMacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::UeMacEntity const &', 'arg0')])
-    ## ue-mac-entity.h: ns3::UeMacEntity::UeMacEntity() [constructor]
-    cls.add_constructor([])
-    ## ue-mac-entity.h: ns3::Ptr<ns3::CqiIdealControlMessage> ns3::UeMacEntity::CreateCqiFeedbacks(std::vector<double, std::allocator<double> > sinr) [member function]
-    cls.add_method('CreateCqiFeedbacks', 
-                   'ns3::Ptr< ns3::CqiIdealControlMessage >', 
-                   [param('std::vector< double >', 'sinr')])
-    ## ue-mac-entity.h: static ns3::TypeId ns3::UeMacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3VirtualNetDevice_methods(root_module, cls):
-    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice(ns3::VirtualNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::VirtualNetDevice const &', 'arg0')])
-    ## virtual-net-device.h: ns3::VirtualNetDevice::VirtualNetDevice() [constructor]
-    cls.add_constructor([])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Ptr<ns3::Channel> ns3::VirtualNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: uint32_t ns3::VirtualNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: uint16_t ns3::VirtualNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Address ns3::VirtualNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: ns3::Ptr<ns3::Node> ns3::VirtualNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: static ns3::TypeId ns3::VirtualNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Receive(ns3::Ptr<ns3::Packet> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
-    cls.add_method('Receive', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetIsPointToPoint(bool isPointToPoint) [member function]
-    cls.add_method('SetIsPointToPoint', 
-                   'void', 
-                   [param('bool', 'isPointToPoint')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNeedsArp(bool needsArp) [member function]
-    cls.add_method('SetNeedsArp', 
-                   'void', 
-                   [param('bool', 'needsArp')])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSendCallback(ns3::Callback<bool, ns3::Ptr<ns3::Packet>, ns3::Address const&, ns3::Address const&, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> transmitCb) [member function]
-    cls.add_method('SetSendCallback', 
-                   'void', 
-                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::Address const &, ns3::Address const &, unsigned short, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'transmitCb')])
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::SetSupportsSendFrom(bool supportsSendFrom) [member function]
-    cls.add_method('SetSupportsSendFrom', 
-                   'void', 
-                   [param('bool', 'supportsSendFrom')])
-    ## virtual-net-device.h: bool ns3::VirtualNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## virtual-net-device.h: void ns3::VirtualNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3WifiRadioEnergyModel_methods(root_module, cls):
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(ns3::WifiRadioEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::WifiRadioEnergyModel const &', 'arg0')])
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModel::WifiRadioEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetCcaBusyCurrentA() const [member function]
-    cls.add_method('GetCcaBusyCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: ns3::WifiPhy::State ns3::WifiRadioEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'ns3::WifiPhy::State', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetIdleCurrentA() const [member function]
-    cls.add_method('GetIdleCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: ns3::WifiRadioEnergyModelPhyListener * ns3::WifiRadioEnergyModel::GetPhyListener() [member function]
-    cls.add_method('GetPhyListener', 
-                   'ns3::WifiRadioEnergyModelPhyListener *', 
-                   [])
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetRxCurrentA() const [member function]
-    cls.add_method('GetRxCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetSwitchingCurrentA() const [member function]
-    cls.add_method('GetSwitchingCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::GetTxCurrentA() const [member function]
-    cls.add_method('GetTxCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## wifi-radio-energy-model.h: static ns3::TypeId ns3::WifiRadioEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetCcaBusyCurrentA(double ccaBusyCurrentA) [member function]
-    cls.add_method('SetCcaBusyCurrentA', 
-                   'void', 
-                   [param('double', 'ccaBusyCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetIdleCurrentA(double idleCurrentA) [member function]
-    cls.add_method('SetIdleCurrentA', 
-                   'void', 
-                   [param('double', 'idleCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetRxCurrentA(double rxCurrentA) [member function]
-    cls.add_method('SetRxCurrentA', 
-                   'void', 
-                   [param('double', 'rxCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetSwitchingCurrentA(double switchingCurrentA) [member function]
-    cls.add_method('SetSwitchingCurrentA', 
-                   'void', 
-                   [param('double', 'switchingCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::SetTxCurrentA(double txCurrentA) [member function]
-    cls.add_method('SetTxCurrentA', 
-                   'void', 
-                   [param('double', 'txCurrentA')])
-    ## wifi-radio-energy-model.h: void ns3::WifiRadioEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## wifi-radio-energy-model.h: double ns3::WifiRadioEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3AcousticModemEnergyModel_methods(root_module, cls):
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel(ns3::AcousticModemEnergyModel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::AcousticModemEnergyModel const &', 'arg0')])
-    ## acoustic-modem-energy-model.h: ns3::AcousticModemEnergyModel::AcousticModemEnergyModel() [constructor]
-    cls.add_constructor([])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::ChangeState(int newState) [member function]
-    cls.add_method('ChangeState', 
-                   'void', 
-                   [param('int', 'newState')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: int ns3::AcousticModemEnergyModel::GetCurrentState() const [member function]
-    cls.add_method('GetCurrentState', 
-                   'int', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetIdlePowerW() const [member function]
-    cls.add_method('GetIdlePowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: ns3::Ptr<ns3::Node> ns3::AcousticModemEnergyModel::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetRxPowerW() const [member function]
-    cls.add_method('GetRxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetSleepPowerW() const [member function]
-    cls.add_method('GetSleepPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTotalEnergyConsumption() const [member function]
-    cls.add_method('GetTotalEnergyConsumption', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::GetTxPowerW() const [member function]
-    cls.add_method('GetTxPowerW', 
-                   'double', 
-                   [], 
-                   is_const=True)
-    ## acoustic-modem-energy-model.h: static ns3::TypeId ns3::AcousticModemEnergyModel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::HandleEnergyDepletion() [member function]
-    cls.add_method('HandleEnergyDepletion', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('SetEnergyDepletionCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetEnergySource(ns3::Ptr<ns3::EnergySource> source) [member function]
-    cls.add_method('SetEnergySource', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnergySource >', 'source')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetIdlePowerW(double idlePowerW) [member function]
-    cls.add_method('SetIdlePowerW', 
-                   'void', 
-                   [param('double', 'idlePowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetRxPowerW(double rxPowerW) [member function]
-    cls.add_method('SetRxPowerW', 
-                   'void', 
-                   [param('double', 'rxPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetSleepPowerW(double sleepPowerW) [member function]
-    cls.add_method('SetSleepPowerW', 
-                   'void', 
-                   [param('double', 'sleepPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::SetTxPowerW(double txPowerW) [member function]
-    cls.add_method('SetTxPowerW', 
-                   'void', 
-                   [param('double', 'txPowerW')])
-    ## acoustic-modem-energy-model.h: void ns3::AcousticModemEnergyModel::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## acoustic-modem-energy-model.h: double ns3::AcousticModemEnergyModel::DoGetCurrentA() const [member function]
-    cls.add_method('DoGetCurrentA', 
-                   'double', 
-                   [], 
-                   is_const=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BasicEnergySource_methods(root_module, cls):
-    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource(ns3::BasicEnergySource const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BasicEnergySource const &', 'arg0')])
-    ## basic-energy-source.h: ns3::BasicEnergySource::BasicEnergySource() [constructor]
-    cls.add_constructor([])
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetEnergyFraction() [member function]
-    cls.add_method('GetEnergyFraction', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: ns3::Time ns3::BasicEnergySource::GetEnergyUpdateInterval() const [member function]
-    cls.add_method('GetEnergyUpdateInterval', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetInitialEnergy() const [member function]
-    cls.add_method('GetInitialEnergy', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetRemainingEnergy() [member function]
-    cls.add_method('GetRemainingEnergy', 
-                   'double', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: double ns3::BasicEnergySource::GetSupplyVoltage() const [member function]
-    cls.add_method('GetSupplyVoltage', 
-                   'double', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## basic-energy-source.h: static ns3::TypeId ns3::BasicEnergySource::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetEnergyUpdateInterval(ns3::Time interval) [member function]
-    cls.add_method('SetEnergyUpdateInterval', 
-                   'void', 
-                   [param('ns3::Time', 'interval')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetInitialEnergy(double initialEnergyJ) [member function]
-    cls.add_method('SetInitialEnergy', 
-                   'void', 
-                   [param('double', 'initialEnergyJ')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::SetSupplyVoltage(double supplyVoltageV) [member function]
-    cls.add_method('SetSupplyVoltage', 
-                   'void', 
-                   [param('double', 'supplyVoltageV')])
-    ## basic-energy-source.h: void ns3::BasicEnergySource::UpdateEnergySource() [member function]
-    cls.add_method('UpdateEnergySource', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## basic-energy-source.h: void ns3::BasicEnergySource::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3BridgeChannel_methods(root_module, cls):
-    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel(ns3::BridgeChannel const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeChannel const &', 'arg0')])
-    ## bridge-channel.h: ns3::BridgeChannel::BridgeChannel() [constructor]
-    cls.add_constructor([])
-    ## bridge-channel.h: void ns3::BridgeChannel::AddChannel(ns3::Ptr<ns3::Channel> bridgedChannel) [member function]
-    cls.add_method('AddChannel', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Channel >', 'bridgedChannel')])
-    ## bridge-channel.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeChannel::GetDevice(uint32_t i) const [member function]
-    cls.add_method('GetDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-channel.h: uint32_t ns3::BridgeChannel::GetNDevices() const [member function]
-    cls.add_method('GetNDevices', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-channel.h: static ns3::TypeId ns3::BridgeChannel::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3BridgeNetDevice_methods(root_module, cls):
-    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice(ns3::BridgeNetDevice const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::BridgeNetDevice const &', 'arg0')])
-    ## bridge-net-device.h: ns3::BridgeNetDevice::BridgeNetDevice() [constructor]
-    cls.add_constructor([])
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddBridgePort(ns3::Ptr<ns3::NetDevice> bridgePort) [member function]
-    cls.add_method('AddBridgePort', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'bridgePort')])
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetBridgePort(uint32_t n) const [member function]
-    cls.add_method('GetBridgePort', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('uint32_t', 'n')], 
-                   is_const=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::Channel> ns3::BridgeNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint16_t ns3::BridgeNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv4Address multicastGroup) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'multicastGroup')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: ns3::Address ns3::BridgeNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: uint32_t ns3::BridgeNetDevice::GetNBridgePorts() const [member function]
-    cls.add_method('GetNBridgePorts', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## bridge-net-device.h: ns3::Ptr<ns3::Node> ns3::BridgeNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: static ns3::TypeId ns3::BridgeNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardBroadcast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
-    cls.add_method('ForwardBroadcast', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ForwardUnicast(ns3::Ptr<ns3::NetDevice> incomingPort, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Mac48Address src, ns3::Mac48Address dst) [member function]
-    cls.add_method('ForwardUnicast', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'incomingPort'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Mac48Address', 'src'), param('ns3::Mac48Address', 'dst')], 
-                   visibility='protected')
-    ## bridge-net-device.h: ns3::Ptr<ns3::NetDevice> ns3::BridgeNetDevice::GetLearnedState(ns3::Mac48Address source) [member function]
-    cls.add_method('GetLearnedState', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [param('ns3::Mac48Address', 'source')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::Learn(ns3::Mac48Address source, ns3::Ptr<ns3::NetDevice> port) [member function]
-    cls.add_method('Learn', 
-                   'void', 
-                   [param('ns3::Mac48Address', 'source'), param('ns3::Ptr< ns3::NetDevice >', 'port')], 
-                   visibility='protected')
-    ## bridge-net-device.h: void ns3::BridgeNetDevice::ReceiveFromDevice(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<ns3::Packet const> packet, uint16_t protocol, ns3::Address const & source, ns3::Address const & destination, ns3::NetDevice::PacketType packetType) [member function]
-    cls.add_method('ReceiveFromDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'destination'), param('ns3::NetDevice::PacketType', 'packetType')], 
-                   visibility='protected')
-    return
-
-def register_Ns3CqiIdealControlMessage_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage(ns3::CqiIdealControlMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::CqiIdealControlMessage const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiIdealControlMessage() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: void ns3::CqiIdealControlMessage::AddNewRecord(int subChannel, double cqi) [member function]
-    cls.add_method('AddNewRecord', 
-                   'void', 
-                   [param('int', 'subChannel'), param('double', 'cqi')])
-    ## ideal-control-messages.h: std::list<ns3::CqiIdealControlMessage::CqiFeedback,std::allocator<ns3::CqiIdealControlMessage::CqiFeedback> > * ns3::CqiIdealControlMessage::GetMessage() [member function]
-    cls.add_method('GetMessage', 
-                   'std::list< ns3::CqiIdealControlMessage::CqiFeedback > *', 
-                   [])
-    return
-
-def register_Ns3CqiIdealControlMessageCqiFeedback_methods(root_module, cls):
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback() [constructor]
-    cls.add_constructor([])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::CqiFeedback(ns3::CqiIdealControlMessage::CqiFeedback const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::CqiIdealControlMessage::CqiFeedback const &', 'arg0')])
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_cqi [variable]
-    cls.add_instance_attribute('m_cqi', 'double', is_const=False)
-    ## ideal-control-messages.h: ns3::CqiIdealControlMessage::CqiFeedback::m_idSubChannel [variable]
-    cls.add_instance_attribute('m_idSubChannel', 'int', is_const=False)
-    return
-
-def register_Ns3EnbLtePhy_methods(root_module, cls):
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::EnbLtePhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbLtePhy const &', 'arg0')])
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy() [constructor]
-    cls.add_constructor([])
-    ## enb-phy.h: ns3::EnbLtePhy::EnbLtePhy(ns3::Ptr<ns3::LteNetDevice> d) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::LteNetDevice >', 'd')])
-    ## enb-phy.h: void ns3::EnbLtePhy::CalcChannelQualityForUe(std::vector<double, std::allocator<double> > sinr, ns3::Ptr<ns3::LteSpectrumPhy> ue) [member function]
-    cls.add_method('CalcChannelQualityForUe', 
-                   'void', 
-                   [param('std::vector< double >', 'sinr'), param('ns3::Ptr< ns3::LteSpectrumPhy >', 'ue')])
-    ## enb-phy.h: ns3::Ptr<ns3::SpectrumValue> ns3::EnbLtePhy::CreateTxPowerSpectralDensity() [member function]
-    cls.add_method('CreateTxPowerSpectralDensity', 
-                   'ns3::Ptr< ns3::SpectrumValue >', 
-                   [], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::DoSetDownlinkSubChannels() [member function]
-    cls.add_method('DoSetDownlinkSubChannels', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::EndFrame() [member function]
-    cls.add_method('EndFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: void ns3::EnbLtePhy::EndSubFrame() [member function]
-    cls.add_method('EndSubFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: static ns3::TypeId ns3::EnbLtePhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::ReceiveIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::SendIdealControlMessage(ns3::Ptr<ns3::IdealControlMessage> msg) [member function]
-    cls.add_method('SendIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::IdealControlMessage >', 'msg')], 
-                   is_virtual=True)
-    ## enb-phy.h: bool ns3::EnbLtePhy::SendPacket(ns3::Ptr<ns3::PacketBurst> pb) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'pb')], 
-                   is_virtual=True)
-    ## enb-phy.h: void ns3::EnbLtePhy::StartFrame() [member function]
-    cls.add_method('StartFrame', 
-                   'void', 
-                   [])
-    ## enb-phy.h: void ns3::EnbLtePhy::StartSubFrame() [member function]
-    cls.add_method('StartSubFrame', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3EnbLteSpectrumPhy_methods(root_module, cls):
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy(ns3::EnbLteSpectrumPhy const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbLteSpectrumPhy const &', 'arg0')])
-    ## enb-lte-spectrum-phy.h: ns3::EnbLteSpectrumPhy::EnbLteSpectrumPhy() [constructor]
-    cls.add_constructor([])
-    ## enb-lte-spectrum-phy.h: void ns3::EnbLteSpectrumPhy::CalcSinrValues(ns3::Ptr<ns3::SpectrumValue const> rxPsd, ns3::Ptr<ns3::SpectrumValue const> noise) [member function]
-    cls.add_method('CalcSinrValues', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd'), param('ns3::Ptr< ns3::SpectrumValue const >', 'noise')], 
-                   is_virtual=True)
-    ## enb-lte-spectrum-phy.h: static ns3::TypeId ns3::EnbLteSpectrumPhy::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    return
-
-def register_Ns3EnbMacEntity_methods(root_module, cls):
-    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity(ns3::EnbMacEntity const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::EnbMacEntity const &', 'arg0')])
-    ## enb-mac-entity.h: ns3::EnbMacEntity::EnbMacEntity() [constructor]
-    cls.add_constructor([])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetDownlinkPacketScheduler() [member function]
-    cls.add_method('GetDownlinkPacketScheduler', 
-                   'ns3::Ptr< ns3::PacketScheduler >', 
-                   [])
-    ## enb-mac-entity.h: static ns3::TypeId ns3::EnbMacEntity::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-mac-entity.h: ns3::Ptr<ns3::PacketScheduler> ns3::EnbMacEntity::GetUplinkPacketScheduler() [member function]
-    cls.add_method('GetUplinkPacketScheduler', 
-                   'ns3::Ptr< ns3::PacketScheduler >', 
-                   [])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::ReceiveCqiIdealControlMessage(ns3::Ptr<ns3::CqiIdealControlMessage> msg) [member function]
-    cls.add_method('ReceiveCqiIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::CqiIdealControlMessage >', 'msg')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SendPdcchMapIdealControlMessage(ns3::Ptr<ns3::PdcchMapIdealControlMessage> msg) [member function]
-    cls.add_method('SendPdcchMapIdealControlMessage', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PdcchMapIdealControlMessage >', 'msg')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetDownlinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
-    cls.add_method('SetDownlinkPacketScheduler', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
-    ## enb-mac-entity.h: void ns3::EnbMacEntity::SetUplinkPacketScheduler(ns3::Ptr<ns3::PacketScheduler> s) [member function]
-    cls.add_method('SetUplinkPacketScheduler', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketScheduler >', 's')])
-    return
-
-def register_Ns3Ipv4GlobalRouting_methods(root_module, cls):
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting(ns3::Ipv4GlobalRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4GlobalRouting const &', 'arg0')])
-    ## ipv4-global-routing.h: ns3::Ipv4GlobalRouting::Ipv4GlobalRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddASExternalRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddASExternalRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
-    cls.add_method('AddHostRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
-    cls.add_method('AddNetworkRouteTo', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
-    ## ipv4-global-routing.h: uint32_t ns3::Ipv4GlobalRouting::GetNRoutes() const [member function]
-    cls.add_method('GetNRoutes', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## ipv4-global-routing.h: ns3::Ipv4RoutingTableEntry * ns3::Ipv4GlobalRouting::GetRoute(uint32_t i) const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ipv4RoutingTableEntry *', 
-                   [param('uint32_t', 'i')], 
-                   is_const=True)
-    ## ipv4-global-routing.h: static ns3::TypeId ns3::Ipv4GlobalRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::RemoveRoute(uint32_t i) [member function]
-    cls.add_method('RemoveRoute', 
-                   'void', 
-                   [param('uint32_t', 'i')])
-    ## ipv4-global-routing.h: bool ns3::Ipv4GlobalRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4GlobalRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-global-routing.h: void ns3::Ipv4GlobalRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv4ListRouting_methods(root_module, cls):
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting(ns3::Ipv4ListRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv4ListRouting const &', 'arg0')])
-    ## ipv4-list-routing.h: ns3::Ipv4ListRouting::Ipv4ListRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol, int16_t priority) [member function]
-    cls.add_method('AddRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: uint32_t ns3::Ipv4ListRouting::GetNRoutingProtocols() const [member function]
-    cls.add_method('GetNRoutingProtocols', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
-                   [param('uint32_t', 'index'), param('int16_t &', 'priority', direction=2)], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: static ns3::TypeId ns3::Ipv4ListRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3Ipv6ListRouting_methods(root_module, cls):
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting(ns3::Ipv6ListRouting const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Ipv6ListRouting const &', 'arg0')])
-    ## ipv6-list-routing.h: ns3::Ipv6ListRouting::Ipv6ListRouting() [constructor]
-    cls.add_constructor([])
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::AddRoutingProtocol(ns3::Ptr<ns3::Ipv6RoutingProtocol> routingProtocol, int16_t priority) [member function]
-    cls.add_method('AddRoutingProtocol', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6RoutingProtocol >', 'routingProtocol'), param('int16_t', 'priority')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: uint32_t ns3::Ipv6ListRouting::GetNRoutingProtocols() const [member function]
-    cls.add_method('GetNRoutingProtocols', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6RoutingProtocol> ns3::Ipv6ListRouting::GetRoutingProtocol(uint32_t index, int16_t & priority) const [member function]
-    cls.add_method('GetRoutingProtocol', 
-                   'ns3::Ptr< ns3::Ipv6RoutingProtocol >', 
-                   [param('uint32_t', 'index'), param('int16_t &', 'priority')], 
-                   is_const=True, is_virtual=True)
-    ## ipv6-list-routing.h: static ns3::TypeId ns3::Ipv6ListRouting::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyAddRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyAddRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveAddress(uint32_t interface, ns3::Ipv6InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv6InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::NotifyRemoveRoute(ns3::Ipv6Address dst, ns3::Ipv6Prefix mask, ns3::Ipv6Address nextHop, uint32_t interface, ns3::Ipv6Address prefixToUse=ns3::Ipv6Address::GetZero( )) [member function]
-    cls.add_method('NotifyRemoveRoute', 
-                   'void', 
-                   [param('ns3::Ipv6Address', 'dst'), param('ns3::Ipv6Prefix', 'mask'), param('ns3::Ipv6Address', 'nextHop'), param('uint32_t', 'interface'), param('ns3::Ipv6Address', 'prefixToUse', default_value='ns3::Ipv6Address::GetZero( )')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: bool ns3::Ipv6ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv6Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv6Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv6MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv6Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv6MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv6Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: ns3::Ptr<ns3::Ipv6Route> ns3::Ipv6ListRouting::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv6Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv6Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::SetIpv6(ns3::Ptr<ns3::Ipv6> ipv6) [member function]
-    cls.add_method('SetIpv6', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv6 >', 'ipv6')], 
-                   is_virtual=True)
-    ## ipv6-list-routing.h: void ns3::Ipv6ListRouting::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    return
-
-def register_Ns3LteNetDevice_methods(root_module, cls):
-    ## lte-net-device.h: static ns3::TypeId ns3::LteNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## lte-net-device.h: ns3::LteNetDevice::LteNetDevice() [constructor]
-    cls.add_constructor([])
-    ## lte-net-device.h: void ns3::LteNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPhyMacTxStartCallback(ns3::PhyMacTxStartCallback c) [member function]
-    cls.add_method('SetPhyMacTxStartCallback', 
-                   'void', 
-                   [param('ns3::PhyMacTxStartCallback', 'c')])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPhy(ns3::Ptr<ns3::LtePhy> phy) [member function]
-    cls.add_method('SetPhy', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## lte-net-device.h: ns3::Ptr<ns3::LtePhy> ns3::LteNetDevice::GetPhy() const [member function]
-    cls.add_method('GetPhy', 
-                   'ns3::Ptr< ns3::LtePhy >', 
-                   [], 
-                   is_const=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetRrcEntity(ns3::Ptr<ns3::RrcEntity> rrc) [member function]
-    cls.add_method('SetRrcEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::RrcEntity >', 'rrc')])
-    ## lte-net-device.h: ns3::Ptr<ns3::RrcEntity> ns3::LteNetDevice::GetRrcEntity() [member function]
-    cls.add_method('GetRrcEntity', 
-                   'ns3::Ptr< ns3::RrcEntity >', 
-                   [])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetIfIndex(uint32_t const index) [member function]
-    cls.add_method('SetIfIndex', 
-                   'void', 
-                   [param('uint32_t const', 'index')], 
-                   is_virtual=True)
-    ## lte-net-device.h: uint32_t ns3::LteNetDevice::GetIfIndex() const [member function]
-    cls.add_method('GetIfIndex', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Ptr<ns3::Channel> ns3::LteNetDevice::GetChannel() const [member function]
-    cls.add_method('GetChannel', 
-                   'ns3::Ptr< ns3::Channel >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SetMtu(uint16_t const mtu) [member function]
-    cls.add_method('SetMtu', 
-                   'bool', 
-                   [param('uint16_t const', 'mtu')], 
-                   is_virtual=True)
-    ## lte-net-device.h: uint16_t ns3::LteNetDevice::GetMtu() const [member function]
-    cls.add_method('GetMtu', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetAddress(ns3::Address address) [member function]
-    cls.add_method('SetAddress', 
-                   'void', 
-                   [param('ns3::Address', 'address')], 
-                   is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetAddress() const [member function]
-    cls.add_method('GetAddress', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsLinkUp() const [member function]
-    cls.add_method('IsLinkUp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::AddLinkChangeCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function]
-    cls.add_method('AddLinkChangeCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsBroadcast() const [member function]
-    cls.add_method('IsBroadcast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetBroadcast() const [member function]
-    cls.add_method('GetBroadcast', 
-                   'ns3::Address', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsMulticast() const [member function]
-    cls.add_method('IsMulticast', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsPointToPoint() const [member function]
-    cls.add_method('IsPointToPoint', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::IsBridge() const [member function]
-    cls.add_method('IsBridge', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Ptr<ns3::Node> ns3::LteNetDevice::GetNode() const [member function]
-    cls.add_method('GetNode', 
-                   'ns3::Ptr< ns3::Node >', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetNode(ns3::Ptr<ns3::Node> node) [member function]
-    cls.add_method('SetNode', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::NeedsArp() const [member function]
-    cls.add_method('NeedsArp', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv4Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv4Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: ns3::Address ns3::LteNetDevice::GetMulticast(ns3::Ipv6Address addr) const [member function]
-    cls.add_method('GetMulticast', 
-                   'ns3::Address', 
-                   [param('ns3::Ipv6Address', 'addr')], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPromiscReceiveCallback(ns3::Callback<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> cb) [member function]
-    cls.add_method('SetPromiscReceiveCallback', 
-                   'void', 
-                   [param('ns3::Callback< 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 >', 'cb')], 
-                   is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::Send(ns3::Ptr<ns3::Packet> packet, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('Send', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SendFrom(ns3::Ptr<ns3::Packet> packet, ns3::Address const & source, ns3::Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('SendFrom', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Address const &', 'source'), param('ns3::Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SupportsSendFrom() const [member function]
-    cls.add_method('SupportsSendFrom', 
-                   'bool', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::Receive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('Receive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')])
-    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest')])
-    ## lte-net-device.h: void ns3::LteNetDevice::ForwardUp(ns3::Ptr<ns3::Packet> packet) [member function]
-    cls.add_method('ForwardUp', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet')])
-    ## lte-net-device.h: void ns3::LteNetDevice::SetPacketToSend(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SetPacketToSend', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')])
-    ## lte-net-device.h: ns3::Ptr<ns3::PacketBurst> ns3::LteNetDevice::GetPacketToSend() [member function]
-    cls.add_method('GetPacketToSend', 
-                   'ns3::Ptr< ns3::PacketBurst >', 
-                   [])
-    ## lte-net-device.h: void ns3::LteNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## lte-net-device.h: bool ns3::LteNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    ## lte-net-device.h: void ns3::LteNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   is_pure_virtual=True, visibility='private', is_virtual=True)
-    return
-
-def register_Ns3UeNetDevice_methods(root_module, cls):
-    ## ue-net-device.h: static ns3::TypeId ns3::UeNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice() [constructor]
-    cls.add_constructor([])
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## ue-net-device.h: ns3::UeNetDevice::UeNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy, ns3::Ptr<ns3::EnbNetDevice> targetEnb) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy'), param('ns3::Ptr< ns3::EnbNetDevice >', 'targetEnb')])
-    ## ue-net-device.h: void ns3::UeNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::SetMacEntity(ns3::Ptr<ns3::UeMacEntity> m) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeMacEntity >', 'm')])
-    ## ue-net-device.h: ns3::Ptr<ns3::UeMacEntity> ns3::UeNetDevice::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::UeMacEntity >', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::InitUeNetDevice() [member function]
-    cls.add_method('InitUeNetDevice', 
-                   'void', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::SetTargetEnb(ns3::Ptr<ns3::EnbNetDevice> enb) [member function]
-    cls.add_method('SetTargetEnb', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbNetDevice >', 'enb')])
-    ## ue-net-device.h: ns3::Ptr<ns3::EnbNetDevice> ns3::UeNetDevice::GetTargetEnb() [member function]
-    cls.add_method('GetTargetEnb', 
-                   'ns3::Ptr< ns3::EnbNetDevice >', 
-                   [])
-    ## ue-net-device.h: void ns3::UeNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## ue-net-device.h: bool ns3::UeNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_virtual=True)
-    ## ue-net-device.h: bool ns3::UeNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   visibility='private', is_virtual=True)
-    ## ue-net-device.h: void ns3::UeNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3EnbNetDevice_methods(root_module, cls):
-    ## enb-net-device.h: static ns3::TypeId ns3::EnbNetDevice::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice() [constructor]
-    cls.add_constructor([])
-    ## enb-net-device.h: ns3::EnbNetDevice::EnbNetDevice(ns3::Ptr<ns3::Node> node, ns3::Ptr<ns3::LtePhy> phy) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::LtePhy >', 'phy')])
-    ## enb-net-device.h: void ns3::EnbNetDevice::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::InitEnbNetDevice() [member function]
-    cls.add_method('InitEnbNetDevice', 
-                   'void', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::Start() [member function]
-    cls.add_method('Start', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::Stop() [member function]
-    cls.add_method('Stop', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::SetUeManager(ns3::Ptr<ns3::UeManager> m) [member function]
-    cls.add_method('SetUeManager', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::UeManager >', 'm')])
-    ## enb-net-device.h: ns3::Ptr<ns3::UeManager> ns3::EnbNetDevice::GetUeManager() [member function]
-    cls.add_method('GetUeManager', 
-                   'ns3::Ptr< ns3::UeManager >', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::SetMacEntity(ns3::Ptr<ns3::EnbMacEntity> m) [member function]
-    cls.add_method('SetMacEntity', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::EnbMacEntity >', 'm')])
-    ## enb-net-device.h: ns3::Ptr<ns3::EnbMacEntity> ns3::EnbNetDevice::GetMacEntity() [member function]
-    cls.add_method('GetMacEntity', 
-                   'ns3::Ptr< ns3::EnbMacEntity >', 
-                   [])
-    ## enb-net-device.h: void ns3::EnbNetDevice::StartTransmission() [member function]
-    cls.add_method('StartTransmission', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## enb-net-device.h: bool ns3::EnbNetDevice::SendPacket(ns3::Ptr<ns3::PacketBurst> p) [member function]
-    cls.add_method('SendPacket', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::PacketBurst >', 'p')], 
-                   is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::SendIdealPdcchMessage() [member function]
-    cls.add_method('SendIdealPdcchMessage', 
-                   'void', 
-                   [])
-    ## enb-net-device.h: bool ns3::EnbNetDevice::DoSend(ns3::Ptr<ns3::Packet> packet, ns3::Mac48Address const & source, ns3::Mac48Address const & dest, uint16_t protocolNumber) [member function]
-    cls.add_method('DoSend', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address const &', 'source'), param('ns3::Mac48Address const &', 'dest'), param('uint16_t', 'protocolNumber')], 
-                   visibility='private', is_virtual=True)
-    ## enb-net-device.h: void ns3::EnbNetDevice::DoReceive(ns3::Ptr<ns3::Packet> p) [member function]
-    cls.add_method('DoReceive', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3DsdvDsdvHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::dsdv::DsdvHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::DsdvHeader const &', 'arg0')])
-    ## dsdv-packet.h: ns3::dsdv::DsdvHeader::DsdvHeader(ns3::Ipv4Address dst=ns3::Ipv4Address(), uint32_t hopcount=0, uint32_t dstSeqNo=0) [constructor]
-    cls.add_constructor([param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('uint32_t', 'hopcount', default_value='0'), param('uint32_t', 'dstSeqNo', default_value='0')])
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## dsdv-packet.h: ns3::Ipv4Address ns3::dsdv::DsdvHeader::GetDst() const [member function]
-    cls.add_method('GetDst', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetDstSeqno() const [member function]
-    cls.add_method('GetDstSeqno', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetHopCount() const [member function]
-    cls.add_method('GetHopCount', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet.h: ns3::TypeId ns3::dsdv::DsdvHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: uint32_t ns3::dsdv::DsdvHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: static ns3::TypeId ns3::dsdv::DsdvHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDst(ns3::Ipv4Address destination) [member function]
-    cls.add_method('SetDst', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'destination')])
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetDstSeqno(uint32_t sequenceNumber) [member function]
-    cls.add_method('SetDstSeqno', 
-                   'void', 
-                   [param('uint32_t', 'sequenceNumber')])
-    ## dsdv-packet.h: void ns3::dsdv::DsdvHeader::SetHopCount(uint32_t hopCount) [member function]
-    cls.add_method('SetHopCount', 
-                   'void', 
-                   [param('uint32_t', 'hopCount')])
-    return
-
-def register_Ns3DsdvPacketQueue_methods(root_module, cls):
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue(ns3::dsdv::PacketQueue const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::PacketQueue const &', 'arg0')])
-    ## dsdv-packet-queue.h: ns3::dsdv::PacketQueue::PacketQueue() [constructor]
-    cls.add_constructor([])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Dequeue(ns3::Ipv4Address dst, ns3::dsdv::QueueEntry & entry) [member function]
-    cls.add_method('Dequeue', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::QueueEntry &', 'entry')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::DropPacketWithDst(ns3::Ipv4Address dst) [member function]
-    cls.add_method('DropPacketWithDst', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Enqueue(ns3::dsdv::QueueEntry & entry) [member function]
-    cls.add_method('Enqueue', 
-                   'bool', 
-                   [param('ns3::dsdv::QueueEntry &', 'entry')])
-    ## dsdv-packet-queue.h: bool ns3::dsdv::PacketQueue::Find(ns3::Ipv4Address dst) [member function]
-    cls.add_method('Find', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetCountForPacketsWithDst(ns3::Ipv4Address dst) [member function]
-    cls.add_method('GetCountForPacketsWithDst', 
-                   'uint32_t', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxPacketsPerDst() const [member function]
-    cls.add_method('GetMaxPacketsPerDst', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetMaxQueueLen() const [member function]
-    cls.add_method('GetMaxQueueLen', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::PacketQueue::GetQueueTimeout() const [member function]
-    cls.add_method('GetQueueTimeout', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: uint32_t ns3::dsdv::PacketQueue::GetSize() [member function]
-    cls.add_method('GetSize', 
-                   'uint32_t', 
-                   [])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxPacketsPerDst(uint32_t len) [member function]
-    cls.add_method('SetMaxPacketsPerDst', 
-                   'void', 
-                   [param('uint32_t', 'len')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetMaxQueueLen(uint32_t len) [member function]
-    cls.add_method('SetMaxQueueLen', 
-                   'void', 
-                   [param('uint32_t', 'len')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::PacketQueue::SetQueueTimeout(ns3::Time t) [member function]
-    cls.add_method('SetQueueTimeout', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    return
-
-def register_Ns3DsdvQueueEntry_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::dsdv::QueueEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::QueueEntry const &', 'arg0')])
-    ## dsdv-packet-queue.h: ns3::dsdv::QueueEntry::QueueEntry(ns3::Ptr<ns3::Packet const> pa=0, ns3::Ipv4Header const & h=ns3::Ipv4Header(), ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb=ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>(), ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb=ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::Packet const >', 'pa', default_value='0'), param('ns3::Ipv4Header const &', 'h', default_value='ns3::Ipv4Header()'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb', default_value='ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb', default_value='ns3::Callback<void, ns3::Ptr<const ns3::Packet>, const ns3::Ipv4Header&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>()')])
-    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetErrorCallback() const [member function]
-    cls.add_method('GetErrorCallback', 
-                   'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Time ns3::dsdv::QueueEntry::GetExpireTime() const [member function]
-    cls.add_method('GetExpireTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Ipv4Header ns3::dsdv::QueueEntry::GetIpv4Header() const [member function]
-    cls.add_method('GetIpv4Header', 
-                   'ns3::Ipv4Header', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Ptr<ns3::Packet const> ns3::dsdv::QueueEntry::GetPacket() const [member function]
-    cls.add_method('GetPacket', 
-                   'ns3::Ptr< ns3::Packet const >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::dsdv::QueueEntry::GetUnicastForwardCallback() const [member function]
-    cls.add_method('GetUnicastForwardCallback', 
-                   'ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetErrorCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('SetErrorCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetExpireTime(ns3::Time exp) [member function]
-    cls.add_method('SetExpireTime', 
-                   'void', 
-                   [param('ns3::Time', 'exp')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetIpv4Header(ns3::Ipv4Header h) [member function]
-    cls.add_method('SetIpv4Header', 
-                   'void', 
-                   [param('ns3::Ipv4Header', 'h')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetPacket(ns3::Ptr<ns3::Packet const> p) [member function]
-    cls.add_method('SetPacket', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p')])
-    ## dsdv-packet-queue.h: void ns3::dsdv::QueueEntry::SetUnicastForwardCallback(ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb) [member function]
-    cls.add_method('SetUnicastForwardCallback', 
-                   'void', 
-                   [param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb')])
-    return
-
-def register_Ns3DsdvRoutingProtocol_methods(root_module, cls):
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol(ns3::dsdv::RoutingProtocol const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingProtocol const &', 'arg0')])
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::RoutingProtocol() [constructor]
-    cls.add_constructor([])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableBufferFlag() const [member function]
-    cls.add_method('GetEnableBufferFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetEnableRAFlag() const [member function]
-    cls.add_method('GetEnableRAFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: static ns3::TypeId ns3::dsdv::RoutingProtocol::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::GetWSTFlag() const [member function]
-    cls.add_method('GetWSTFlag', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, is_virtual=True)
-    ## dsdv-routing-protocol.h: bool ns3::dsdv::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableBufferFlag(bool f) [member function]
-    cls.add_method('SetEnableBufferFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetEnableRAFlag(bool f) [member function]
-    cls.add_method('SetEnableRAFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   is_virtual=True)
-    ## dsdv-routing-protocol.h: void ns3::dsdv::RoutingProtocol::SetWSTFlag(bool f) [member function]
-    cls.add_method('SetWSTFlag', 
-                   'void', 
-                   [param('bool', 'f')])
-    ## dsdv-routing-protocol.h: ns3::dsdv::RoutingProtocol::DSDV_PORT [variable]
-    cls.add_static_attribute('DSDV_PORT', 'uint32_t const', is_const=True)
-    return
-
-def register_Ns3DsdvRoutingTable_methods(root_module, cls):
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable(ns3::dsdv::RoutingTable const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingTable const &', 'arg0')])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTable::RoutingTable() [constructor]
-    cls.add_constructor([])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddIpv4Event(ns3::Ipv4Address arg0, ns3::EventId arg1) [member function]
-    cls.add_method('AddIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'arg0'), param('ns3::EventId', 'arg1')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AddRoute(ns3::dsdv::RoutingTableEntry & r) [member function]
-    cls.add_method('AddRoute', 
-                   'bool', 
-                   [param('ns3::dsdv::RoutingTableEntry &', 'r')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::AnyRunningEvent(ns3::Ipv4Address address) [member function]
-    cls.add_method('AnyRunningEvent', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Clear() [member function]
-    cls.add_method('Clear', 
-                   'void', 
-                   [])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::DeleteAllRoutesFromInterface(ns3::Ipv4InterfaceAddress iface) [member function]
-    cls.add_method('DeleteAllRoutesFromInterface', 
-                   'void', 
-                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteIpv4Event(ns3::Ipv4Address address) [member function]
-    cls.add_method('DeleteIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::DeleteRoute(ns3::Ipv4Address dst) [member function]
-    cls.add_method('DeleteRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::ForceDeleteIpv4Event(ns3::Ipv4Address address) [member function]
-    cls.add_method('ForceDeleteIpv4Event', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: ns3::EventId ns3::dsdv::RoutingTable::GetEventId(ns3::Ipv4Address address) [member function]
-    cls.add_method('GetEventId', 
-                   'ns3::EventId', 
-                   [param('ns3::Ipv4Address', 'address')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfAllRoutes(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & allRoutes) [member function]
-    cls.add_method('GetListOfAllRoutes', 
-                   'void', 
-                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'allRoutes')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::GetListOfDestinationWithNextHop(ns3::Ipv4Address nxtHp, std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & dstList) [member function]
-    cls.add_method('GetListOfDestinationWithNextHop', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nxtHp'), param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'dstList')])
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTable::Getholddowntime() const [member function]
-    cls.add_method('Getholddowntime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address dst, ns3::dsdv::RoutingTableEntry & rt) [member function]
-    cls.add_method('LookupRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'dst'), param('ns3::dsdv::RoutingTableEntry &', 'rt')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::LookupRoute(ns3::Ipv4Address id, ns3::dsdv::RoutingTableEntry & rt, bool forRouteInput) [member function]
-    cls.add_method('LookupRoute', 
-                   'bool', 
-                   [param('ns3::Ipv4Address', 'id'), param('ns3::dsdv::RoutingTableEntry &', 'rt'), param('bool', 'forRouteInput')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Purge(std::map<ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry, std::less<ns3::Ipv4Address>, std::allocator<std::pair<ns3::Ipv4Address const, ns3::dsdv::RoutingTableEntry> > > & removedAddresses) [member function]
-    cls.add_method('Purge', 
-                   'void', 
-                   [param('std::map< ns3::Ipv4Address, ns3::dsdv::RoutingTableEntry > &', 'removedAddresses')])
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTable::RoutingTableSize() [member function]
-    cls.add_method('RoutingTableSize', 
-                   'uint32_t', 
-                   [])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTable::Setholddowntime(ns3::Time t) [member function]
-    cls.add_method('Setholddowntime', 
-                   'void', 
-                   [param('ns3::Time', 't')])
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTable::Update(ns3::dsdv::RoutingTableEntry & rt) [member function]
-    cls.add_method('Update', 
-                   'bool', 
-                   [param('ns3::dsdv::RoutingTableEntry &', 'rt')])
-    return
-
-def register_Ns3DsdvRoutingTableEntry_methods(root_module, cls):
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::dsdv::RoutingTableEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::dsdv::RoutingTableEntry const &', 'arg0')])
-    ## dsdv-rtable.h: ns3::dsdv::RoutingTableEntry::RoutingTableEntry(ns3::Ptr<ns3::NetDevice> dev=0, ns3::Ipv4Address dst=ns3::Ipv4Address(), u_int32_t m_seqNo=0, ns3::Ipv4InterfaceAddress iface=ns3::Ipv4InterfaceAddress(), u_int32_t hops=0, ns3::Ipv4Address nextHop=ns3::Ipv4Address(), ns3::Time lifetime=ns3::Simulator::Now( ), ns3::Time SettlingTime=ns3::Simulator::Now( ), bool changedEntries=false) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::NetDevice >', 'dev', default_value='0'), param('ns3::Ipv4Address', 'dst', default_value='ns3::Ipv4Address()'), param('u_int32_t', 'm_seqNo', default_value='0'), param('ns3::Ipv4InterfaceAddress', 'iface', default_value='ns3::Ipv4InterfaceAddress()'), param('u_int32_t', 'hops', default_value='0'), param('ns3::Ipv4Address', 'nextHop', default_value='ns3::Ipv4Address()'), param('ns3::Time', 'lifetime', default_value='ns3::Simulator::Now( )'), param('ns3::Time', 'SettlingTime', default_value='ns3::Simulator::Now( )'), param('bool', 'changedEntries', default_value='false')])
-    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetDestination() const [member function]
-    cls.add_method('GetDestination', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: bool ns3::dsdv::RoutingTableEntry::GetEntriesChanged() const [member function]
-    cls.add_method('GetEntriesChanged', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::dsdv::RouteFlags ns3::dsdv::RoutingTableEntry::GetFlag() const [member function]
-    cls.add_method('GetFlag', 
-                   'ns3::dsdv::RouteFlags', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetHop() const [member function]
-    cls.add_method('GetHop', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ipv4InterfaceAddress ns3::dsdv::RoutingTableEntry::GetInterface() const [member function]
-    cls.add_method('GetInterface', 
-                   'ns3::Ipv4InterfaceAddress', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetLifeTime() const [member function]
-    cls.add_method('GetLifeTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ipv4Address ns3::dsdv::RoutingTableEntry::GetNextHop() const [member function]
-    cls.add_method('GetNextHop', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ptr<ns3::NetDevice> ns3::dsdv::RoutingTableEntry::GetOutputDevice() const [member function]
-    cls.add_method('GetOutputDevice', 
-                   'ns3::Ptr< ns3::NetDevice >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Ptr<ns3::Ipv4Route> ns3::dsdv::RoutingTableEntry::GetRoute() const [member function]
-    cls.add_method('GetRoute', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: uint32_t ns3::dsdv::RoutingTableEntry::GetSeqNo() const [member function]
-    cls.add_method('GetSeqNo', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: ns3::Time ns3::dsdv::RoutingTableEntry::GetSettlingTime() const [member function]
-    cls.add_method('GetSettlingTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::Print(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True)
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetEntriesChanged(bool entriesChanged) [member function]
-    cls.add_method('SetEntriesChanged', 
-                   'void', 
-                   [param('bool', 'entriesChanged')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetFlag(ns3::dsdv::RouteFlags flag) [member function]
-    cls.add_method('SetFlag', 
-                   'void', 
-                   [param('ns3::dsdv::RouteFlags', 'flag')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetHop(uint32_t hopCount) [member function]
-    cls.add_method('SetHop', 
-                   'void', 
-                   [param('uint32_t', 'hopCount')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetInterface(ns3::Ipv4InterfaceAddress iface) [member function]
-    cls.add_method('SetInterface', 
-                   'void', 
-                   [param('ns3::Ipv4InterfaceAddress', 'iface')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetLifeTime(ns3::Time lifeTime) [member function]
-    cls.add_method('SetLifeTime', 
-                   'void', 
-                   [param('ns3::Time', 'lifeTime')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetNextHop(ns3::Ipv4Address nextHop) [member function]
-    cls.add_method('SetNextHop', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'nextHop')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetOutputDevice(ns3::Ptr<ns3::NetDevice> device) [member function]
-    cls.add_method('SetOutputDevice', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::NetDevice >', 'device')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetRoute(ns3::Ptr<ns3::Ipv4Route> route) [member function]
-    cls.add_method('SetRoute', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSeqNo(uint32_t sequenceNumber) [member function]
-    cls.add_method('SetSeqNo', 
-                   'void', 
-                   [param('uint32_t', 'sequenceNumber')])
-    ## dsdv-rtable.h: void ns3::dsdv::RoutingTableEntry::SetSettlingTime(ns3::Time settlingTime) [member function]
-    cls.add_method('SetSettlingTime', 
-                   'void', 
-                   [param('ns3::Time', 'settlingTime')])
-    return
-
-def register_Ns3OlsrAssociation_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::Association::Association() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::Association::Association(ns3::olsr::Association const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::Association const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::Association::netmask [variable]
-    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::Association::networkAddr [variable]
-    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrAssociationTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::AssociationTuple(ns3::olsr::AssociationTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::AssociationTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::gatewayAddr [variable]
-    cls.add_instance_attribute('gatewayAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::netmask [variable]
-    cls.add_instance_attribute('netmask', 'ns3::Ipv4Mask', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::AssociationTuple::networkAddr [variable]
-    cls.add_instance_attribute('networkAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrDuplicateTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::DuplicateTuple(ns3::olsr::DuplicateTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::DuplicateTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::address [variable]
-    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::ifaceList [variable]
-    cls.add_instance_attribute('ifaceList', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::retransmitted [variable]
-    cls.add_instance_attribute('retransmitted', 'bool', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::DuplicateTuple::sequenceNumber [variable]
-    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3OlsrIfaceAssocTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::IfaceAssocTuple(ns3::olsr::IfaceAssocTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::IfaceAssocTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::ifaceAddr [variable]
-    cls.add_instance_attribute('ifaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::mainAddr [variable]
-    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::IfaceAssocTuple::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3OlsrLinkTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::LinkTuple(ns3::olsr::LinkTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::LinkTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::asymTime [variable]
-    cls.add_instance_attribute('asymTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::localIfaceAddr [variable]
-    cls.add_instance_attribute('localIfaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::neighborIfaceAddr [variable]
-    cls.add_instance_attribute('neighborIfaceAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::symTime [variable]
-    cls.add_instance_attribute('symTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::LinkTuple::time [variable]
-    cls.add_instance_attribute('time', 'ns3::Time', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader(ns3::olsr::MessageHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageHeader() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello & ns3::olsr::MessageHeader::GetHello() [member function]
-    cls.add_method('GetHello', 
-                   'ns3::olsr::MessageHeader::Hello &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello const & ns3::olsr::MessageHeader::GetHello() const [member function]
-    cls.add_method('GetHello', 
-                   'ns3::olsr::MessageHeader::Hello const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna & ns3::olsr::MessageHeader::GetHna() [member function]
-    cls.add_method('GetHna', 
-                   'ns3::olsr::MessageHeader::Hna &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna const & ns3::olsr::MessageHeader::GetHna() const [member function]
-    cls.add_method('GetHna', 
-                   'ns3::olsr::MessageHeader::Hna const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetHopCount() const [member function]
-    cls.add_method('GetHopCount', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::TypeId ns3::olsr::MessageHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: uint16_t ns3::olsr::MessageHeader::GetMessageSequenceNumber() const [member function]
-    cls.add_method('GetMessageSequenceNumber', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::MessageType ns3::olsr::MessageHeader::GetMessageType() const [member function]
-    cls.add_method('GetMessageType', 
-                   'ns3::olsr::MessageHeader::MessageType', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid & ns3::olsr::MessageHeader::GetMid() [member function]
-    cls.add_method('GetMid', 
-                   'ns3::olsr::MessageHeader::Mid &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid const & ns3::olsr::MessageHeader::GetMid() const [member function]
-    cls.add_method('GetMid', 
-                   'ns3::olsr::MessageHeader::Mid const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: ns3::Ipv4Address ns3::olsr::MessageHeader::GetOriginatorAddress() const [member function]
-    cls.add_method('GetOriginatorAddress', 
-                   'ns3::Ipv4Address', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc & ns3::olsr::MessageHeader::GetTc() [member function]
-    cls.add_method('GetTc', 
-                   'ns3::olsr::MessageHeader::Tc &', 
-                   [])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc const & ns3::olsr::MessageHeader::GetTc() const [member function]
-    cls.add_method('GetTc', 
-                   'ns3::olsr::MessageHeader::Tc const &', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint8_t ns3::olsr::MessageHeader::GetTimeToLive() const [member function]
-    cls.add_method('GetTimeToLive', 
-                   'uint8_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: static ns3::TypeId ns3::olsr::MessageHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::GetVTime() const [member function]
-    cls.add_method('GetVTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetHopCount(uint8_t hopCount) [member function]
-    cls.add_method('SetHopCount', 
-                   'void', 
-                   [param('uint8_t', 'hopCount')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageSequenceNumber(uint16_t messageSequenceNumber) [member function]
-    cls.add_method('SetMessageSequenceNumber', 
-                   'void', 
-                   [param('uint16_t', 'messageSequenceNumber')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetMessageType(ns3::olsr::MessageHeader::MessageType messageType) [member function]
-    cls.add_method('SetMessageType', 
-                   'void', 
-                   [param('ns3::olsr::MessageHeader::MessageType', 'messageType')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetOriginatorAddress(ns3::Ipv4Address originatorAddress) [member function]
-    cls.add_method('SetOriginatorAddress', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'originatorAddress')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetTimeToLive(uint8_t timeToLive) [member function]
-    cls.add_method('SetTimeToLive', 
-                   'void', 
-                   [param('uint8_t', 'timeToLive')])
-    ## olsr-header.h: void ns3::olsr::MessageHeader::SetVTime(ns3::Time time) [member function]
-    cls.add_method('SetVTime', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    return
-
-def register_Ns3OlsrMessageHeaderHello_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::Hello(ns3::olsr::MessageHeader::Hello const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: ns3::Time ns3::olsr::MessageHeader::Hello::GetHTime() const [member function]
-    cls.add_method('GetHTime', 
-                   'ns3::Time', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hello::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hello::SetHTime(ns3::Time time) [member function]
-    cls.add_method('SetHTime', 
-                   'void', 
-                   [param('ns3::Time', 'time')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::hTime [variable]
-    cls.add_instance_attribute('hTime', 'uint8_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::linkMessages [variable]
-    cls.add_instance_attribute('linkMessages', 'std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::willingness [variable]
-    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHelloLinkMessage_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::LinkMessage(ns3::olsr::MessageHeader::Hello::LinkMessage const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hello::LinkMessage const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::linkCode [variable]
-    cls.add_instance_attribute('linkCode', 'uint8_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses [variable]
-    cls.add_instance_attribute('neighborInterfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHna_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Hna(ns3::olsr::MessageHeader::Hna const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Hna::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Hna::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::associations [variable]
-    cls.add_instance_attribute('associations', 'std::vector< ns3::olsr::MessageHeader::Hna::Association >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderHnaAssociation_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::Association(ns3::olsr::MessageHeader::Hna::Association const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Hna::Association const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::address [variable]
-    cls.add_instance_attribute('address', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Hna::Association::mask [variable]
-    cls.add_instance_attribute('mask', 'ns3::Ipv4Mask', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderMid_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::Mid(ns3::olsr::MessageHeader::Mid const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Mid const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Mid::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Mid::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Mid::interfaceAddresses [variable]
-    cls.add_instance_attribute('interfaceAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMessageHeaderTc_methods(root_module, cls):
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::Tc(ns3::olsr::MessageHeader::Tc const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MessageHeader::Tc const &', 'arg0')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::Deserialize(ns3::Buffer::Iterator start, uint32_t messageSize) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start'), param('uint32_t', 'messageSize')])
-    ## olsr-header.h: uint32_t ns3::olsr::MessageHeader::Tc::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True)
-    ## olsr-header.h: void ns3::olsr::MessageHeader::Tc::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::ansn [variable]
-    cls.add_instance_attribute('ansn', 'uint16_t', is_const=False)
-    ## olsr-header.h: ns3::olsr::MessageHeader::Tc::neighborAddresses [variable]
-    cls.add_instance_attribute('neighborAddresses', 'std::vector< ns3::Ipv4Address >', is_const=False)
-    return
-
-def register_Ns3OlsrMprSelectorTuple_methods(root_module, cls):
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::MprSelectorTuple(ns3::olsr::MprSelectorTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::MprSelectorTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::MprSelectorTuple::mainAddr [variable]
-    cls.add_instance_attribute('mainAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrNeighborTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::NeighborTuple(ns3::olsr::NeighborTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::NeighborTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::neighborMainAddr [variable]
-    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::status [variable]
-    cls.add_instance_attribute('status', 'ns3::olsr::NeighborTuple::Status', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::NeighborTuple::willingness [variable]
-    cls.add_instance_attribute('willingness', 'uint8_t', is_const=False)
-    return
-
-def register_Ns3OlsrOlsrMprTestCase_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::OlsrMprTestCase::OlsrMprTestCase() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: void ns3::olsr::OlsrMprTestCase::DoRun() [member function]
-    cls.add_method('DoRun', 
-                   'void', 
-                   [], 
-                   is_virtual=True)
-    return
-
-def register_Ns3OlsrPacketHeader_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader(ns3::olsr::PacketHeader const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::PacketHeader const &', 'arg0')])
-    ## olsr-header.h: ns3::olsr::PacketHeader::PacketHeader() [constructor]
-    cls.add_constructor([])
-    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
-    cls.add_method('Deserialize', 
-                   'uint32_t', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_virtual=True)
-    ## olsr-header.h: ns3::TypeId ns3::olsr::PacketHeader::GetInstanceTypeId() const [member function]
-    cls.add_method('GetInstanceTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketLength() const [member function]
-    cls.add_method('GetPacketLength', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint16_t ns3::olsr::PacketHeader::GetPacketSequenceNumber() const [member function]
-    cls.add_method('GetPacketSequenceNumber', 
-                   'uint16_t', 
-                   [], 
-                   is_const=True)
-    ## olsr-header.h: uint32_t ns3::olsr::PacketHeader::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: static ns3::TypeId ns3::olsr::PacketHeader::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::Buffer::Iterator', 'start')], 
-                   is_const=True, is_virtual=True)
-    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketLength(uint16_t length) [member function]
-    cls.add_method('SetPacketLength', 
-                   'void', 
-                   [param('uint16_t', 'length')])
-    ## olsr-header.h: void ns3::olsr::PacketHeader::SetPacketSequenceNumber(uint16_t seqnum) [member function]
-    cls.add_method('SetPacketSequenceNumber', 
-                   'void', 
-                   [param('uint16_t', 'seqnum')])
-    return
-
-def register_Ns3OlsrRoutingProtocol_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol(ns3::olsr::RoutingProtocol const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::RoutingProtocol const &', 'arg0')])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingProtocol::RoutingProtocol() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::AddHostNetworkAssociation(ns3::Ipv4Address networkAddr, ns3::Ipv4Mask netmask) [member function]
-    cls.add_method('AddHostNetworkAssociation', 
-                   'void', 
-                   [param('ns3::Ipv4Address', 'networkAddr'), param('ns3::Ipv4Mask', 'netmask')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::Dump() [member function]
-    cls.add_method('Dump', 
-                   'void', 
-                   [])
-    ## olsr-routing-protocol.h: std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > ns3::olsr::RoutingProtocol::GetInterfaceExclusions() const [member function]
-    cls.add_method('GetInterfaceExclusions', 
-                   'std::set< unsigned int >', 
-                   [], 
-                   is_const=True)
-    ## olsr-routing-protocol.h: std::vector<ns3::olsr::RoutingTableEntry,std::allocator<ns3::olsr::RoutingTableEntry> > ns3::olsr::RoutingProtocol::GetRoutingTableEntries() const [member function]
-    cls.add_method('GetRoutingTableEntries', 
-                   'std::vector< ns3::olsr::RoutingTableEntry >', 
-                   [], 
-                   is_const=True)
-    ## olsr-routing-protocol.h: static ns3::TypeId ns3::olsr::RoutingProtocol::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetInterfaceExclusions(std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > exceptions) [member function]
-    cls.add_method('SetInterfaceExclusions', 
-                   'void', 
-                   [param('std::set< unsigned int >', 'exceptions')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetMainInterface(uint32_t interface) [member function]
-    cls.add_method('SetMainInterface', 
-                   'void', 
-                   [param('uint32_t', 'interface')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetRoutingTableAssociation(ns3::Ptr<ns3::Ipv4StaticRouting> routingTable) [member function]
-    cls.add_method('SetRoutingTableAssociation', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4StaticRouting >', 'routingTable')])
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoStart() [member function]
-    cls.add_method('DoStart', 
-                   'void', 
-                   [], 
-                   visibility='protected', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::DoDispose() [member function]
-    cls.add_method('DoDispose', 
-                   'void', 
-                   [], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyAddAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceDown', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
-    cls.add_method('NotifyInterfaceUp', 
-                   'void', 
-                   [param('uint32_t', 'interface')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
-    cls.add_method('NotifyRemoveAddress', 
-                   'void', 
-                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
-    cls.add_method('PrintRoutingTable', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
-                   is_const=True, visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void, ns3::Ptr<ns3::Ipv4Route>, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void, ns3::Ptr<ns3::Packet const>, ns3::Ipv4Header const&, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ecb) [member function]
-    cls.add_method('RouteInput', 
-                   'bool', 
-                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: ns3::Ptr<ns3::Ipv4Route> ns3::olsr::RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
-    cls.add_method('RouteOutput', 
-                   'ns3::Ptr< ns3::Ipv4Route >', 
-                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
-                   visibility='private', is_virtual=True)
-    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
-    cls.add_method('SetIpv4', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
-                   visibility='private', is_virtual=True)
-    return
-
-def register_Ns3OlsrRoutingTableEntry_methods(root_module, cls):
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry(ns3::olsr::RoutingTableEntry const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::RoutingTableEntry const &', 'arg0')])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::RoutingTableEntry() [constructor]
-    cls.add_constructor([])
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::destAddr [variable]
-    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::distance [variable]
-    cls.add_instance_attribute('distance', 'uint32_t', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::interface [variable]
-    cls.add_instance_attribute('interface', 'uint32_t', is_const=False)
-    ## olsr-routing-protocol.h: ns3::olsr::RoutingTableEntry::nextAddr [variable]
-    cls.add_instance_attribute('nextAddr', 'ns3::Ipv4Address', is_const=False)
-    return
-
-def register_Ns3OlsrTopologyTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::TopologyTuple(ns3::olsr::TopologyTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::TopologyTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::destAddr [variable]
-    cls.add_instance_attribute('destAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::lastAddr [variable]
-    cls.add_instance_attribute('lastAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TopologyTuple::sequenceNumber [variable]
-    cls.add_instance_attribute('sequenceNumber', 'uint16_t', is_const=False)
-    return
-
-def register_Ns3OlsrTwoHopNeighborTuple_methods(root_module, cls):
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('==')
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple() [constructor]
-    cls.add_constructor([])
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::TwoHopNeighborTuple(ns3::olsr::TwoHopNeighborTuple const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::olsr::TwoHopNeighborTuple const &', 'arg0')])
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::expirationTime [variable]
-    cls.add_instance_attribute('expirationTime', 'ns3::Time', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::neighborMainAddr [variable]
-    cls.add_instance_attribute('neighborMainAddr', 'ns3::Ipv4Address', is_const=False)
-    ## olsr-repositories.h: ns3::olsr::TwoHopNeighborTuple::twoHopNeighborAddr [variable]
-    cls.add_instance_attribute('twoHopNeighborAddr', 'ns3::Ipv4Address', is_const=False)
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_methods(root_module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_methods(root_module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_methods(root_module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_methods(root_module)
+    
+    root_module.end_section('ns3_module_static_routing')
     return
 
 def register_functions(root_module):
@@ -10274,17 +1182,6 @@
         ns3_module_core__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_core')
-    root_module.begin_section('ns3_module_lte')
-    ns3_module_lte.register_functions(root_module)
-    
-    try:
-        import ns3_module_lte__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_lte__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_lte')
     root_module.begin_section('ns3_module_simulator')
     ns3_module_simulator.register_functions(root_module)
     
@@ -10417,28 +1314,6 @@
         ns3_module_emu__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_emu')
-    root_module.begin_section('ns3_module_energy')
-    ns3_module_energy.register_functions(root_module)
-    
-    try:
-        import ns3_module_energy__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_energy__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_energy')
-    root_module.begin_section('ns3_module_global_routing')
-    ns3_module_global_routing.register_functions(root_module)
-    
-    try:
-        import ns3_module_global_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_global_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_global_routing')
     root_module.begin_section('ns3_module_internet_stack')
     ns3_module_internet_stack.register_functions(root_module)
     
@@ -10450,17 +1325,6 @@
         ns3_module_internet_stack__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_internet_stack')
-    root_module.begin_section('ns3_module_list_routing')
-    ns3_module_list_routing.register_functions(root_module)
-    
-    try:
-        import ns3_module_list_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_list_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_list_routing')
     root_module.begin_section('ns3_module_onoff')
     ns3_module_onoff.register_functions(root_module)
     
@@ -10494,28 +1358,17 @@
         ns3_module_point_to_point__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_point_to_point')
-    root_module.begin_section('ns3_module_spectrum')
-    ns3_module_spectrum.register_functions(root_module)
+    root_module.begin_section('ns3_module_propagation')
+    ns3_module_propagation.register_functions(root_module)
     
     try:
-        import ns3_module_spectrum__local
+        import ns3_module_propagation__local
     except ImportError:
         pass
     else:
-        ns3_module_spectrum__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_spectrum')
-    root_module.begin_section('ns3_module_static_routing')
-    ns3_module_static_routing.register_functions(root_module)
+        ns3_module_propagation__local.register_functions(root_module)
     
-    try:
-        import ns3_module_static_routing__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_static_routing__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_static_routing')
+    root_module.end_section('ns3_module_propagation')
     root_module.begin_section('ns3_module_stats')
     ns3_module_stats.register_functions(root_module)
     
@@ -10593,17 +1446,6 @@
         ns3_module_wimax__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_wimax')
-    root_module.begin_section('ns3_module_uan')
-    ns3_module_uan.register_functions(root_module)
-    
-    try:
-        import ns3_module_uan__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_uan__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_aodv')
     ns3_module_aodv.register_functions(root_module)
     
@@ -10637,17 +1479,6 @@
         ns3_module_nix_vector_routing__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_nix_vector_routing')
-    root_module.begin_section('ns3_module_olsr')
-    ns3_module_olsr.register_functions(root_module)
-    
-    try:
-        import ns3_module_olsr__local
-    except ImportError:
-        pass
-    else:
-        ns3_module_olsr__local.register_functions(root_module)
-    
-    root_module.end_section('ns3_module_olsr')
     root_module.begin_section('ns3_module_ping6')
     ns3_module_ping6.register_functions(root_module)
     
@@ -10692,17 +1523,28 @@
         ns3_module_udp_echo__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_udp_echo')
-    root_module.begin_section('ns3_module_dsdv')
-    ns3_module_dsdv.register_functions(root_module)
+    root_module.begin_section('ns3_module_spectrum')
+    ns3_module_spectrum.register_functions(root_module)
     
     try:
-        import ns3_module_dsdv__local
+        import ns3_module_spectrum__local
     except ImportError:
         pass
     else:
-        ns3_module_dsdv__local.register_functions(root_module)
+        ns3_module_spectrum__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_spectrum')
+    root_module.begin_section('ns3_module_energy')
+    ns3_module_energy.register_functions(root_module)
     
-    root_module.end_section('ns3_module_dsdv')
+    try:
+        import ns3_module_energy__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_energy__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_energy')
     root_module.begin_section('ns3_module_mesh')
     ns3_module_mesh.register_functions(root_module)
     
@@ -10725,6 +1567,28 @@
         ns3_module_helper__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_helper')
+    root_module.begin_section('ns3_module_lte')
+    ns3_module_lte.register_functions(root_module)
+    
+    try:
+        import ns3_module_lte__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_lte__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_lte')
+    root_module.begin_section('ns3_module_uan')
+    ns3_module_uan.register_functions(root_module)
+    
+    try:
+        import ns3_module_uan__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_uan__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_uan')
     root_module.begin_section('ns3_module_dot11s')
     ns3_module_dot11s.register_functions(root_module)
     
@@ -10747,10 +1611,61 @@
         ns3_module_flame__local.register_functions(root_module)
     
     root_module.end_section('ns3_module_flame')
-    ## uan-tx-mode.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeUanModesListChecker() [free function]
-    module.add_function('MakeUanModesListChecker', 
-                        'ns3::Ptr< ns3::AttributeChecker const >', 
-                        [])
+    root_module.begin_section('ns3_module_dsdv')
+    ns3_module_dsdv.register_functions(root_module)
+    
+    try:
+        import ns3_module_dsdv__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_dsdv__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_dsdv')
+    root_module.begin_section('ns3_module_global_routing')
+    ns3_module_global_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_global_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_global_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_global_routing')
+    root_module.begin_section('ns3_module_list_routing')
+    ns3_module_list_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_list_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_list_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_list_routing')
+    root_module.begin_section('ns3_module_olsr')
+    ns3_module_olsr.register_functions(root_module)
+    
+    try:
+        import ns3_module_olsr__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_olsr__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_olsr')
+    root_module.begin_section('ns3_module_static_routing')
+    ns3_module_static_routing.register_functions(root_module)
+    
+    try:
+        import ns3_module_static_routing__local
+    except ImportError:
+        pass
+    else:
+        ns3_module_static_routing__local.register_functions(root_module)
+    
+    root_module.end_section('ns3_module_static_routing')
     register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
     register_functions_ns3_addressUtils(module.get_submodule('addressUtils'), root_module)
@@ -10787,14 +1702,6 @@
     return
 
 def register_functions_ns3_olsr(module, root_module):
-    ## olsr-header.h: extern double ns3::olsr::EmfToSeconds(uint8_t emf) [free function]
-    module.add_function('EmfToSeconds', 
-                        'double', 
-                        [param('uint8_t', 'emf')])
-    ## olsr-header.h: extern uint8_t ns3::olsr::SecondsToEmf(double seconds) [free function]
-    module.add_function('SecondsToEmf', 
-                        'uint8_t', 
-                        [param('double', 'seconds')])
     return
 
 def main():
--- a/bindings/python/ns3modulegen.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/ns3modulegen.py	Tue Feb 08 13:08:45 2011 -0500
@@ -155,7 +155,7 @@
         root_module.enums.remove(root_module['ns3::RealtimeSimulatorImpl::SynchronizationMode'])
 
     if 'TapBridge' not in enabled_features:
-        for clsname in ['TapBridge', 'TapBridgeHelper']:
+        for clsname in ['TapBridge', 'TapBridgeHelper', 'TapBridgeFdReader']:
             root_module.classes.remove(root_module['ns3::%s' % clsname])
         root_module.enums.remove(root_module['ns3::TapBridge::Mode'])
 
--- a/bindings/python/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/bindings/python/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -406,7 +406,7 @@
             if ns3headers.module != module_name:
                 continue
             for source in ns3headers.to_list(ns3headers.source):
-                headers.append(source)
+                headers.append(os.path.basename(source))
         retval[module_name] = (list(module.module_deps), headers)
     return retval
 
--- a/doc/manual/source/callbacks.rst	Tue Feb 01 14:31:54 2011 -0500
+++ b/doc/manual/source/callbacks.rst	Tue Feb 08 13:08:45 2011 -0500
@@ -209,27 +209,47 @@
   class Functor
   {
   public:
-      virtual void operator() (T arg) = 0;
-   };
+    virtual int operator() (T arg) = 0;
+  };
 
 The caller defines a specific part of the functor that really is just there to 
 implement the specific ``operator()`` method::
 
   template <typename T, typename ARG>
-  class SpecificFunctor : public Functor
-   {
-   public:
-      SpecificFunctor(T* p, int (T::*_pmi)(ARG arg))
-      {
-        m_p = p;
-        m_pmi = pmi;
-      }
+  class SpecificFunctor : public Functor<ARG>
+  {
+  public:
+    SpecificFunctor(T* p, int (T::*_pmi)(ARG arg))
+    {
+      m_p = p;
+      m_pmi = _pmi;
+    }
+
+    virtual int operator() (ARG arg)
+    {
+      (*m_p.*m_pmi)(arg);
+    }
+  private:
+    int (T::*m_pmi)(ARG arg);
+    T* m_p;
+  };
 
-      virtual int operator() (ARG arg)
-      {
-        (*m_p.*m_pmi)(arg);
-      }
-  private:
-      void (T::*m_pmi)(ARG arg);
-      T* m_p;
-   };
+Here is an example of the usage::
+
+  class A
+  {
+  public:
+  A (int ao) : a (a0) {}
+  int Hello (int b0)
+  {
+    std::cout << "Hello from A, a = " << a << " b0 = " << b0 << std::endl;
+  }
+  int a;
+  };
+
+  int main()
+  {
+    A a(10);
+    SpecificFunctor<A, int> sf(&a, &A::Hello);
+    sf(5);
+  }
--- a/examples/spectrum/adhoc-aloha-ideal-phy-with-microwave-oven.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-
-#include <iostream>
-
-#include <ns3/core-module.h>
-#include <ns3/common-module.h>
-#include <ns3/node-module.h>
-#include <ns3/simulator-module.h>
-#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
-#include <ns3/spectrum-model-300kHz-300GHz-log.h>
-#include <ns3/wifi-spectrum-value-helper.h>
-#include <ns3/multi-model-spectrum-channel.h>
-#include <ns3/waveform-generator.h>
-#include <ns3/spectrum-analyzer.h>
-#include <ns3/log.h>
-#include <string>
-#include <ns3/friis-spectrum-propagation-loss.h>
-#include <ns3/propagation-delay-model.h>
-#include <ns3/mobility-module.h>
-#include <ns3/spectrum-helper.h>
-#include <ns3/helper-module.h>
-#include <ns3/adhoc-aloha-noack-ideal-phy-helper.h>
-#include <ns3/waveform-generator-helper.h>
-#include <ns3/spectrum-analyzer-helper.h>
-#include <ns3/non-communicating-net-device.h>
-#include <ns3/microwave-oven-spectrum-value-helper.h>
-
-NS_LOG_COMPONENT_DEFINE ("OfdmWithWaveformGenerator");
-
-using namespace ns3;
-
-static bool g_verbose = false;
-
-
-void
-PhyTxStartTrace (std::string context, Ptr<const Packet> p)
-{  
-  if (g_verbose)
-    {
-      std::cout << context << " PHY TX START p: " << p << std::endl;
-    }
-}
-
-
-void
-PhyTxEndTrace (std::string context, Ptr<const Packet> p)
-{  
-  if (g_verbose)
-    {
-      std::cout << context << " PHY TX END p: " << p << std::endl;
-    }
-}
-
-void
-PhyRxStartTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX START p:" << p << std::endl; 
-    }
-}
-
-void
-PhyRxEndOkTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX END OK p:" << p << std::endl; 
-    }
-}
-
-void
-PhyRxEndErrorTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX END ERROR p:" << p << std::endl; 
-    }
-}
-
-
-void
-ReceivePacket (Ptr<Socket> socket)
-{
-  Ptr<Packet> packet;
-  uint64_t bytes = 0;
-  while (packet = socket->Recv ())
-    {
-      bytes += packet->GetSize ();
-    }
-  if (g_verbose)
-    {
-      std::cout << "SOCKET received " << bytes << " bytes" <<std::endl; 
-    }
-}
-
-Ptr<Socket>
-SetupPacketReceive (Ptr<Node> node)
-{
-  TypeId tid = TypeId::LookupByName ("ns3::PacketSocketFactory");
-  Ptr<Socket> sink = Socket::CreateSocket (node, tid);
-  sink->Bind ();
-  sink->SetRecvCallback (MakeCallback (&ReceivePacket));
-  return sink;
-}
-
-int main (int argc, char** argv)
-{
-  CommandLine cmd;
-  cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
-  cmd.Parse (argc, argv);
-  
-  NodeContainer ofdmNodes;
-  NodeContainer waveformGeneratorNodes;
-  NodeContainer spectrumAnalyzerNodes;
-  NodeContainer allNodes;
-  
-  ofdmNodes.Create (2);
-  waveformGeneratorNodes.Create (1);
-  spectrumAnalyzerNodes.Create (1);
-  allNodes.Add (ofdmNodes);
-  allNodes.Add (waveformGeneratorNodes);
-  allNodes.Add (spectrumAnalyzerNodes);
-
-  MobilityHelper mobility;
-  Ptr<ListPositionAllocator> nodePositionList = CreateObject<ListPositionAllocator> ();
-  nodePositionList->Add (Vector (5.0, 0.0, 0.0));  // TX node
-  nodePositionList->Add (Vector (0.0, 0.0, 0.0));  // RX node
-  nodePositionList->Add (Vector (10.0, 0.0, 0.0)); // Microwave Oven
-  nodePositionList->Add (Vector (0.0, 0.0, 0.0));  // Spectrum Analyzer
-  mobility.SetPositionAllocator (nodePositionList);
-  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
-
-  mobility.Install (allNodes);
-
-   
-  SpectrumChannelHelper channelHelper = SpectrumChannelHelper::Default ();
-  channelHelper.SetChannel ("ns3::MultiModelSpectrumChannel");
-  Ptr<SpectrumChannel> channel = channelHelper.Create ();
-
-
-  /////////////////////////
-  // Configure ofdm nodes
-  ////////////////////////
-
-  WifiSpectrumValue5MhzFactory sf;
-
-  double txPower = 0.1; // Watts
-  uint32_t channelNumber = 2;
-  Ptr<SpectrumValue> txPsd =  sf.CreateTxPowerSpectralDensity (txPower, channelNumber);  
-  
-  // for the noise, we use the Power Spectral Density of thermal noise
-  // at room temperature. The value of the PSD will be constant over the band of interest.  
-  const double k = 1.381e-23; //Boltzmann's constant
-  const double T = 290; // temperature in Kelvin
-  double noisePsdValue = k*T; // watts per hertz
-  Ptr<SpectrumValue> noisePsd = sf.CreateConstant (noisePsdValue); 
-  
-
-  AdhocAlohaNoackIdealPhyHelper adhocAlohaOfdmHelper;
-  adhocAlohaOfdmHelper.SetChannel(channel);
-  adhocAlohaOfdmHelper.SetTxPowerSpectralDensity (txPsd);
-  adhocAlohaOfdmHelper.SetNoisePowerSpectralDensity (noisePsd);
-  adhocAlohaOfdmHelper.SetPhyAttribute ("Rate", DataRateValue (DataRate ("1Mbps")));
-  NetDeviceContainer ofdmDevices = adhocAlohaOfdmHelper.Install (ofdmNodes);
-
-  PacketSocketHelper packetSocket;
-  packetSocket.Install (ofdmNodes);
-
-  PacketSocketAddress socket;
-  socket.SetSingleDevice(ofdmDevices.Get (0)->GetIfIndex ());
-  socket.SetPhysicalAddress (ofdmDevices.Get (1)->GetAddress ());
-  socket.SetProtocol (1);
-
-  OnOffHelper onoff ("ns3::PacketSocketFactory", Address (socket));
-  onoff.SetAttribute ("OnTime", RandomVariableValue (ExponentialVariable (0.4)));
-  onoff.SetAttribute ("OffTime", RandomVariableValue (ExponentialVariable (0.1)));
-  onoff.SetAttribute ("DataRate", DataRateValue (DataRate ("0.4Mbps")));
-  onoff.SetAttribute ("PacketSize", UintegerValue (1500));
-
-  ApplicationContainer apps = onoff.Install (ofdmNodes.Get (0));
-  apps.Start (Seconds (0.0));
-  apps.Stop (Seconds (2));
-  
-  Ptr<Socket> recvSink = SetupPacketReceive (ofdmNodes.Get (1));
-
-
-
-
-  
-  /////////////////////////////////
-  // Configure waveform generator
-  /////////////////////////////////
-
-  Ptr<SpectrumValue> mwoPsd =  MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo1 ();
-  NS_LOG_INFO ("mwoPsd : " << *mwoPsd);
-
-  WaveformGeneratorHelper waveformGeneratorHelper;
-  waveformGeneratorHelper.SetChannel(channel);
-  waveformGeneratorHelper.SetTxPowerSpectralDensity (mwoPsd);
-
-  waveformGeneratorHelper.SetPhyAttribute ("Period", TimeValue(Seconds(1.0/60)));   // corresponds to 60 Hz 
-  waveformGeneratorHelper.SetPhyAttribute ("DutyCycle", DoubleValue(0.5));
-  NetDeviceContainer waveformGeneratorDevices = waveformGeneratorHelper.Install (waveformGeneratorNodes);
-  
-  Simulator::Schedule(Seconds(0.1), &WaveformGenerator::Start, 
-  		      waveformGeneratorDevices.Get (0)->GetObject<NonCommunicatingNetDevice> ()->GetPhy ()->GetObject<WaveformGenerator> ());
-
-
-  
-  /////////////////////////////////
-  // Configure spectrum analyzer
-  /////////////////////////////////
-
-
-  SpectrumAnalyzerHelper spectrumAnalyzerHelper;
-  spectrumAnalyzerHelper.SetChannel(channel);
-  spectrumAnalyzerHelper.SetRxSpectrumModel (SpectrumModelIsm2400MhzRes1Mhz);
-  spectrumAnalyzerHelper.SetPhyAttribute ("Resolution", TimeValue(MilliSeconds (2)));   
-  spectrumAnalyzerHelper.SetPhyAttribute ("NoisePowerSpectralDensity", DoubleValue (1e-15));  // -120 dBm/Hz
-  spectrumAnalyzerHelper.EnableAsciiAll ("spectrum-analyzer-output");   
-  NetDeviceContainer spectrumAnalyzerDevices = spectrumAnalyzerHelper.Install (spectrumAnalyzerNodes);
-
-
-
-
-
-
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxStart", MakeCallback (&PhyTxStartTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxEnd", MakeCallback (&PhyTxEndTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxStart", MakeCallback (&PhyRxStartTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndOk", MakeCallback (&PhyRxEndOkTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndError", MakeCallback (&PhyRxEndErrorTrace));
-  
-
-
-
-Simulator::Stop (Seconds (0.3));
-
-Simulator::Run ();
-
-Simulator::Destroy ();
-
-}
-
-
--- a/examples/spectrum/adhoc-aloha-ideal-phy.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-
-#include <iostream>
-
-#include <ns3/core-module.h>
-#include <ns3/common-module.h>
-#include <ns3/node-module.h>
-#include <ns3/simulator-module.h>
-#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
-#include <ns3/spectrum-model-300kHz-300GHz-log.h>
-#include <ns3/wifi-spectrum-value-helper.h>
-#include <ns3/single-model-spectrum-channel.h>
-#include <ns3/waveform-generator.h>
-#include <ns3/spectrum-analyzer.h>
-#include <ns3/log.h>
-#include <string>
-#include <ns3/friis-spectrum-propagation-loss.h>
-#include <ns3/propagation-delay-model.h>
-#include <ns3/mobility-module.h>
-#include <ns3/spectrum-helper.h>
-#include <ns3/helper-module.h>
-#include <ns3/adhoc-aloha-noack-ideal-phy-helper.h>
-
-NS_LOG_COMPONENT_DEFINE ("TestAdhocOfdmAloha");
-
-using namespace ns3;
-
-static bool g_verbose = false;
-
-void
-PhyTxStartTrace (std::string context, Ptr<const Packet> p)
-{  
-  if (g_verbose)
-    {
-      std::cout << context << " PHY TX START p: " << p << std::endl;
-    }
-}
-
-
-void
-PhyTxEndTrace (std::string context, Ptr<const Packet> p)
-{  
-  if (g_verbose)
-    {
-      std::cout << context << " PHY TX END p: " << p << std::endl;
-    }
-}
-
-void
-PhyRxStartTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX START p:" << p << std::endl; 
-    }
-}
-
-void
-PhyRxEndOkTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX END OK p:" << p << std::endl; 
-    }
-}
-
-void
-PhyRxEndErrorTrace (std::string context, Ptr<const Packet> p)
-{
-  if (g_verbose)
-    {
-      std::cout << context << " PHY RX END ERROR p:" << p << std::endl; 
-    }
-}
-
-
-void
-ReceivePacket (Ptr<Socket> socket)
-{
-  Ptr<Packet> packet;
-  uint64_t bytes = 0;
-  while (packet = socket->Recv ())
-    {
-      bytes += packet->GetSize ();
-    }
-  if (g_verbose)
-    {
-      std::cout << "SOCKET received " << bytes << " bytes" <<std::endl; 
-    }
-}
-
-Ptr<Socket>
-SetupPacketReceive (Ptr<Node> node)
-{
-  TypeId tid = TypeId::LookupByName ("ns3::PacketSocketFactory");
-  Ptr<Socket> sink = Socket::CreateSocket (node, tid);
-  sink->Bind ();
-  sink->SetRecvCallback (MakeCallback (&ReceivePacket));
-  return sink;
-}
-
-int main (int argc, char** argv)
-{
-  CommandLine cmd;
-  cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
-  cmd.Parse (argc, argv);
-  
-  NodeContainer c;
-  c.Create (2);
-
-  MobilityHelper mobility;
-  Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
-  positionAlloc->Add (Vector (0.0, 0.0, 0.0));
-  positionAlloc->Add (Vector (5.0, 0.0, 0.0));
-  mobility.SetPositionAllocator (positionAlloc);
-  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
-
-  mobility.Install (c);
-  
-   
-  SpectrumChannelHelper channelHelper = SpectrumChannelHelper::Default ();
-  Ptr<SpectrumChannel> channel = channelHelper.Create ();
-
-  WifiSpectrumValue5MhzFactory sf;
-
-  double txPower = 0.1; // Watts
-  uint32_t channelNumber = 1;
-  Ptr<SpectrumValue> txPsd =  sf.CreateTxPowerSpectralDensity (txPower, channelNumber);  
-  
-  // for the noise, we use the Power Spectral Density of thermal noise
-  // at room temperature. The value of the PSD will be constant over the band of interest.  
-  const double k = 1.381e-23; //Boltzmann's constant
-  const double T = 290; // temperature in Kelvin
-  double noisePsdValue = k*T; // watts per hertz
-  Ptr<SpectrumValue> noisePsd = sf.CreateConstant (noisePsdValue);   
-
-  AdhocAlohaNoackIdealPhyHelper deviceHelper;
-  deviceHelper.SetChannel(channel);
-  deviceHelper.SetTxPowerSpectralDensity (txPsd);
-  deviceHelper.SetNoisePowerSpectralDensity (noisePsd);
-  deviceHelper.SetPhyAttribute ("Rate", DataRateValue (DataRate ("1Mbps")));
-  NetDeviceContainer devices = deviceHelper.Install (c);
-
-  PacketSocketHelper packetSocket;
-  packetSocket.Install (c);
-
-  PacketSocketAddress socket;
-  socket.SetSingleDevice(devices.Get (0)->GetIfIndex ());
-  socket.SetPhysicalAddress (devices.Get (1)->GetAddress ());
-  socket.SetProtocol (1);
-
-  OnOffHelper onoff ("ns3::PacketSocketFactory", Address (socket));
-  onoff.SetAttribute ("OnTime", RandomVariableValue (ConstantVariable (250)));
-  onoff.SetAttribute ("OffTime", RandomVariableValue (ConstantVariable (0)));
-  onoff.SetAttribute ("DataRate", DataRateValue (DataRate ("0.5Mbps")));
-  onoff.SetAttribute ("PacketSize", UintegerValue (125));
-
-  ApplicationContainer apps = onoff.Install (c.Get (0));
-  apps.Start (Seconds (0.1));
-  apps.Stop (Seconds (0.104));
-  
-  Ptr<Socket> recvSink = SetupPacketReceive (c.Get (1));
-
-  Simulator::Stop (Seconds (10.0));
-
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxStart", MakeCallback (&PhyTxStartTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxEnd", MakeCallback (&PhyTxEndTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxStart", MakeCallback (&PhyRxStartTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndOk", MakeCallback (&PhyRxEndOkTrace));
-  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndError", MakeCallback (&PhyRxEndErrorTrace));
-
-
-  Simulator::Run ();
-
-  Simulator::Destroy ();
-
-  return 0;
-}
--- a/examples/spectrum/waf	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-exec "`dirname "$0"`"/../../waf "$@"
--- a/examples/spectrum/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-
-def build(bld):
-    obj = bld.create_ns3_program('adhoc-aloha-ideal-phy',
-                                 ['spectrum'])
-    obj.source = 'adhoc-aloha-ideal-phy.cc'
-
-    obj = bld.create_ns3_program('adhoc-aloha-ideal-phy-with-microwave-oven',
-                                 ['spectrum'])
-    obj.source = 'adhoc-aloha-ideal-phy-with-microwave-oven.cc'
-
-
--- a/examples/wireless/wifi-hidden-terminal.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/examples/wireless/wifi-hidden-terminal.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -30,7 +30,7 @@
  *  - IP flow monitor
  */
 #include "ns3/core-module.h"
-#include "ns3/common-module.h"
+#include "ns3/propagation-module.h"
 #include "ns3/node-module.h"
 #include "ns3/helper-module.h"
 #include "ns3/mobility-module.h"
@@ -58,8 +58,8 @@
   // 3. Create propagation loss matrix
   Ptr<MatrixPropagationLossModel> lossModel = CreateObject<MatrixPropagationLossModel> ();
   lossModel->SetDefaultLoss (200); // set default loss to 200 dB (no link)
-  lossModel->SetLoss (nodes.Get (0), nodes.Get (1), 50); // set symmetric loss 0 <-> 1 to 50 dB
-  lossModel->SetLoss (nodes.Get (2), nodes.Get (1), 50); // set symmetric loss 2 <-> 1 to 50 dB
+  lossModel->SetLoss (nodes.Get (0)->GetObject<MobilityModel>(), nodes.Get (1)->GetObject<MobilityModel>(), 50); // set symmetric loss 0 <-> 1 to 50 dB
+  lossModel->SetLoss (nodes.Get (2)->GetObject<MobilityModel>(), nodes.Get (1)->GetObject<MobilityModel>(), 50); // set symmetric loss 2 <-> 1 to 50 dB
 
   // 4. Create & setup wifi channel
   Ptr<YansWifiChannel> wifiChannel = CreateObject <YansWifiChannel> ();
--- a/examples/wireless/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/examples/wireless/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -41,5 +41,5 @@
     obj = bld.create_ns3_program('ofdm-validation', ['core', 'simulator', 'mobility', 'wifi'])
     obj.source = 'ofdm-validation.cc'
 
-    obj = bld.create_ns3_program('wifi-hidden-terminal', ['core', 'simulator', 'mobility', 'wifi', 'flow-monitor'])
+    obj = bld.create_ns3_program('wifi-hidden-terminal', ['core', 'simulator', 'mobility', 'wifi', 'propagation', 'flow-monitor'])
     obj.source = 'wifi-hidden-terminal.cc'
--- a/samples/main-random-topology.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/samples/main-random-topology.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -2,8 +2,8 @@
 
 #include "ns3/core-module.h"
 #include "ns3/mobility-module.h"
+#include "ns3/simulator-module.h"
 #include "ns3/helper-module.h"
-#include "ns3/simulator-module.h"
 
 using namespace ns3;
 
--- a/samples/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/samples/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -5,7 +5,7 @@
     if not env['ENABLE_EXAMPLES']:
         return;
 
-    obj = bld.create_ns3_program('main-attribute-value', ['core', 'node'])
+    obj = bld.create_ns3_program('main-attribute-value', ['core', 'node', 'devices/point-to-point'])
     obj.source = 'main-attribute-value.cc'
 
     obj = bld.create_ns3_program('main-callback', ['core'])
@@ -39,11 +39,11 @@
     obj.source = 'main-grid-topology.cc'
 
     obj = bld.create_ns3_program('main-random-topology',
-                                 ['core', 'simulator', 'mobility'])
+                                 ['core', 'simulator', 'helper', 'mobility'])
     obj.source = 'main-random-topology.cc'
     
     obj = bld.create_ns3_program('main-random-walk',
-                                 ['core', 'simulator', 'mobility'])
+                                 ['core', 'simulator', 'helper', 'mobility'])
     obj.source = 'main-random-walk.cc'
 
     obj = bld.create_ns3_program('main-propagation-loss',
--- a/src/common/cost231-propagation-loss-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2007,2008, 2009 INRIA, UDcast
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
- *                              <amine.ismail@udcast.com>
- */
-
-#include "ns3/propagation-loss-model.h"
-#include "ns3/log.h"
-#include "ns3/mobility-model.h"
-#include "ns3/double.h"
-#include "ns3/pointer.h"
-#include <math.h>
-#include "cost231-propagation-loss-model.h"
-
-namespace ns3 {
-
-NS_LOG_COMPONENT_DEFINE ("Cost231PropagationLossModel");
-NS_OBJECT_ENSURE_REGISTERED (Cost231PropagationLossModel);
-
-TypeId
-Cost231PropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::Cost231PropagationLossModel")
-
-    .SetParent<PropagationLossModel> ()
-
-    .AddConstructor<Cost231PropagationLossModel> ()
-
-    .AddAttribute ("Lambda",
-                   "The wavelength  (default is 2.3 GHz at 300 000 km/s).",
-                   DoubleValue (300000000.0 / 2.3e9),
-                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_lambda),
-                   MakeDoubleChecker<double> ())
-
-    .AddAttribute ("Frequency",
-                   "The Frequency  (default is 2.3 GHz).",
-                   DoubleValue (2.3e9),
-                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_frequency),
-                   MakeDoubleChecker<double> ())
-
-    .AddAttribute ("BSAntennaHeight",
-                   " BS Antenna Height (default is 50m).",
-                   DoubleValue (50.0),
-                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_BSAntennaHeight),
-                   MakeDoubleChecker<double> ())
-
-    .AddAttribute ("SSAntennaHeight",
-                   " SS Antenna Height (default is 3m).",
-                   DoubleValue (3),
-                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_SSAntennaHeight),
-                   MakeDoubleChecker<double> ())
-
-    .AddAttribute ("MinDistance",
-                   "The distance under which the propagation model refuses to give results (m) ",
-                   DoubleValue (0.5),
-                   MakeDoubleAccessor (&Cost231PropagationLossModel::SetMinDistance, &Cost231PropagationLossModel::GetMinDistance),
-                   MakeDoubleChecker<double> ());
-  return tid;
-}
-
-Cost231PropagationLossModel::Cost231PropagationLossModel ()
-{
-  C = 0;
-  m_shadowing = 10;
-}
-
-void
-Cost231PropagationLossModel::SetLambda (double frequency, double speed)
-{
-  m_lambda = speed / frequency;
-  m_frequency = frequency;
-}
-
-double
-Cost231PropagationLossModel::GetShadowing (void)
-{
-  return m_shadowing;
-}
-void
-Cost231PropagationLossModel::SetShadowing (double shadowing)
-{
-  m_shadowing = shadowing;
-}
-
-void
-Cost231PropagationLossModel::SetLambda (double lambda)
-{
-  m_lambda = lambda;
-  m_frequency = 300000000 / lambda;
-}
-
-double
-Cost231PropagationLossModel::GetLambda (void) const
-{
-  return m_lambda;
-}
-
-void
-Cost231PropagationLossModel::SetMinDistance (double minDistance)
-{
-  m_minDistance = minDistance;
-}
-double
-Cost231PropagationLossModel::GetMinDistance (void) const
-{
-  return m_minDistance;
-}
-
-void
-Cost231PropagationLossModel::SetBSAntennaHeight (double height)
-{
-  m_BSAntennaHeight = height;
-}
-
-double
-Cost231PropagationLossModel::GetBSAntennaHeight (void) const
-{
-  return m_BSAntennaHeight;
-}
-
-void
-Cost231PropagationLossModel::SetSSAntennaHeight (double height)
-{
-  m_SSAntennaHeight = height;
-}
-
-double
-Cost231PropagationLossModel::GetSSAntennaHeight (void) const
-{
-  return m_SSAntennaHeight;
-}
-
-void
-Cost231PropagationLossModel::SetEnvironment (Environment env)
-{
-  m_environment = env;
-}
-Cost231PropagationLossModel::Environment
-Cost231PropagationLossModel::GetEnvironment (void) const
-{
-  return m_environment;
-}
-
-double
-Cost231PropagationLossModel::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
-{
-
-  double distance = a->GetDistanceFrom (b);
-  if (distance <= m_minDistance)
-    {
-      return 0.0;
-    }
-
-  double log_f = log (m_frequency / 1000000000) / 2.302;
-  double C_H = 0.8 + ((1.11 * log_f) - 0.7) * m_SSAntennaHeight - (1.56 * log_f);
-  double log_BSH = log (m_BSAntennaHeight) / 2.303;
-
-  // from the COST231 wiki entry
-  // 2.303 is for the logarithm base change
-
-  double loss_in_db = 46.3 + (33.9 * log_f) - (13.82 * log_BSH) - C_H + ((44.9 - 6.55 * log_BSH) * log (distance)
-                                                                         / 2.303) + C + m_shadowing;
-
-  NS_LOG_DEBUG ("dist =" << distance << ", Path Loss = " << loss_in_db);
-
-  return (0 - loss_in_db);
-
-}
-
-double
-Cost231PropagationLossModel::DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
-{
-  return txPowerDbm + GetLoss (a, b);
-}
-
-}
--- a/src/common/cost231-propagation-loss-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2007,2008, 2009 INRIA, UDcast
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
- *                              <amine.ismail@udcast.com>
- */
-
-#ifndef COST231_PROPAGATION_LOSS_MODEL_H_
-#define COST231_PROPAGATION_LOSS_MODEL_H_
-
-#include "ns3/nstime.h"
-#include "ns3/propagation-loss-model.h"
-
-namespace ns3 {
-
-/*
- *  \brief The COST-Hata-Model is the most often cited of the COST 231 models.
- *  Also called the Hata Model PCS Extension, it is a radio propagation model
- *  that extends the Hata Model (which in turn is based on the Okumura Model)
- *  to cover a more elaborated range of frequencies. COST (COperation
- *  europ�enne dans le domaine de la recherche Scientifique et Technique)
- *  is a European Union Forum for cooperative scientific research which has
- *  developed this model accordingly to various experiments and researches.
- *  This model is applicable to urban areas. To further evaluate Path Loss
- *  in Suburban or Rural Quasi-open/Open Areas.
- *  Frequency: 1500 MHz to 2000 MHz
- *  Mobile Station Antenna Height: 1 up to 10m
- *  Base station Antenna Height: 30m to 200m
- *  Link Distance:up to 20 km
- *
- */
-
-class Cost231PropagationLossModel : public PropagationLossModel
-{
-
-public:
-  static TypeId GetTypeId (void);
-  Cost231PropagationLossModel ();
-  enum Environment
-  {
-    SubUrban, MediumCity, Metropolitan
-  };
-
-  /**
-   * \param a the mobility model of the source
-   * \param b the mobility model of the destination
-   * \returns the propagation loss (in dBm)
-   */
-  double GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
-  void SetBSAntennaHeight (double height);
-  void SetSSAntennaHeight (double height);
-  void SetEnvironment (Environment env);
-  void SetLambda (double lambda);
-  void SetMinDistance (double minDistance);
-  double GetBSAntennaHeight (void) const;
-  double GetSSAntennaHeight (void) const;
-  Environment GetEnvironment (void) const;
-  double GetMinDistance (void) const;
-  double GetLambda (void) const;
-  void SetLambda (double frequency, double speed);
-  double GetShadowing (void);
-  void SetShadowing (double shadowing);
-private:
-  virtual double DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
-  double m_BSAntennaHeight; // in meter
-  double m_SSAntennaHeight; // in meter
-  double C;
-  double m_lambda;
-  Environment m_environment;
-  double m_minDistance; // in meter
-  double m_frequency; // frequency in MHz
-  double m_shadowing;
-
-};
-
-}
-
-#endif /* COST231PROPAGATIONMODEL_H_ */
--- a/src/common/friis-spectrum-propagation-loss.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include <ns3/mobility-model.h>
-#include <ns3/friis-spectrum-propagation-loss.h>
-#include <math.h>
-
-
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (FriisSpectrumPropagationLossModel);
-
-
-FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel ()
-{
-}
-
-FriisSpectrumPropagationLossModel::~FriisSpectrumPropagationLossModel ()
-{
-}
-
-
-TypeId
-FriisSpectrumPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::FriisSpectrumPropagationLossModel")
-    .SetParent<SpectrumPropagationLossModel> ()
-    .AddConstructor<FriisSpectrumPropagationLossModel> ()
-  ;
-  return tid;
-}
-
-
-Ptr<SpectrumValue>
-FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
-                                                                 Ptr<const MobilityModel> a,
-                                                                 Ptr<const MobilityModel> b) const
-{
-  Ptr<SpectrumValue> rxPsd = Copy<SpectrumValue> (txPsd);
-  Values::iterator vit = rxPsd->ValuesBegin ();
-  Bands::const_iterator fit = rxPsd->ConstBandsBegin ();
-
-  NS_ASSERT (a);
-  NS_ASSERT (b);
-
-  double d = a->GetDistanceFrom (b);
-
-  while (vit != rxPsd->ValuesEnd ())
-    {
-      NS_ASSERT (fit != rxPsd->ConstBandsEnd ());
-      *vit /= CalculateLoss (fit->fc, d); // Prx = Ptx / loss
-      ++vit;
-      ++fit;
-    }
-  return rxPsd;
-}
-
-
-double
-FriisSpectrumPropagationLossModel::CalculateLoss (double f, double d) const
-{
-  NS_ASSERT (d >= 0);
-
-  if (d == 0)
-    {
-      return 1;
-    }
-
-  NS_ASSERT (f > 0);
-  double loss = ( d * f * f) / ((3e8 * 3e8) / (4 * M_PI)) ;
-
-  if (loss < 1)
-    {
-      loss = 1;
-    }
-  return loss;
-}
-
-
-
-
-
-
-
-
-
-
-
-}  // namespace ns3
--- a/src/common/friis-spectrum-propagation-loss.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef FRIIS_SPECTRUM_PROPAGATION_LOSS_H
-#define FRIIS_SPECTRUM_PROPAGATION_LOSS_H
-
-
-#include <ns3/spectrum-propagation-loss-model.h>
-
-
-namespace ns3 {
-
-class MobilityModel;
-
-
-class FriisSpectrumPropagationLossModel : public SpectrumPropagationLossModel
-{
-
-public:
-  FriisSpectrumPropagationLossModel ();
-  ~FriisSpectrumPropagationLossModel ();
-
-  static TypeId GetTypeId ();
-
-
-  virtual Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
-                                                           Ptr<const MobilityModel> a,
-                                                           Ptr<const MobilityModel> b) const;
-
-
-  /**
-   * Return the propagation loss L according to a simplified version of Friis'
-   * formula in which antenna gains are unitary:
-   *
-   *         4 * pi * d * f^2
-   * L = ----------------------
-   *               C^2
-   *
-   * where C = 3e8 m/s is the light speed in the vacuum. The intended
-   * use is to calculate Prx = Ptx * G
-   *
-   * @param f frequency in Hz
-   * @param d distance in m
-   *
-   * @return if Prx < Ptx then return Prx; else return Ptx
-   */
-  double CalculateLoss (double f, double d) const;
-
-protected:
-  double m_propagationSpeed;
-
-};
-
-
-
-
-
-
-} // namespace ns3
-
-#endif /* FRIIS_SPECTRUM_PROPAGATION_LOSS_MODEL_H */
--- a/src/common/jakes-propagation-loss-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Federico Maguolo <maguolof@dei.unipd.it>
- */
-
-#include "ns3/simulator.h"
-#include "ns3/uinteger.h"
-#include "ns3/double.h"
-#include "ns3/random-variable.h"
-#include "ns3/mobility-model.h"
-#include "ns3/log.h"
-#include "jakes-propagation-loss-model.h"
-#include <math.h>
-
-NS_LOG_COMPONENT_DEFINE ("Jakes");
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (JakesPropagationLossModel);
-
-class JakesPropagationLossModel::PathCoefficients 
-{
-public:
-  PathCoefficients (Ptr<const JakesPropagationLossModel> jakes,
-                    Ptr<MobilityModel> receiver, 
-                    uint8_t nRays, 
-                    uint8_t nOscillators);
-  ~PathCoefficients ();
-  double GetLoss (void);
-  Ptr<MobilityModel> GetReceiver (void);
-private:
-  void DoConstruct (void);
-  Ptr<MobilityModel> m_receiver;
-  uint8_t m_nOscillators;
-  uint8_t m_nRays;
-  double **m_phases;
-  Time m_lastUpdate;
-  Ptr<const JakesPropagationLossModel> m_jakes;
-};
-
-
-JakesPropagationLossModel::PathCoefficients::PathCoefficients (Ptr<const JakesPropagationLossModel> jakes, 
-                                                           Ptr<MobilityModel> receiver, 
-                                                           uint8_t nRays, 
-							   uint8_t nOscillators)
-  : m_receiver (receiver),
-    m_nOscillators (nOscillators),
-    m_nRays (nRays),
-    m_jakes(jakes)
-{
-  DoConstruct ();
-}
-
-JakesPropagationLossModel::PathCoefficients::~PathCoefficients ()
-{
-  for (uint8_t i = 0; i < m_nRays; i++) 
-    {
-      delete [] m_phases[i];
-    }
-  delete [] m_phases;
-}
-
-void
-JakesPropagationLossModel::PathCoefficients::DoConstruct ()
-{
-  m_phases = new double*[m_nRays];
-  for (uint8_t i = 0; i < m_nRays; i++) 
-    {
-      m_phases[i] = new double[m_nOscillators + 1];
-      for (uint8_t j = 0; j <= m_nOscillators; j++) 
-        {
-          m_phases[i][j] = 2.0 * JakesPropagationLossModel::PI * m_jakes->m_variable.GetValue ();
-        }
-    }
-  m_lastUpdate = Simulator::Now ();
-}
-
-Ptr<MobilityModel>
-JakesPropagationLossModel::PathCoefficients::GetReceiver ()
-{
-  return m_receiver;
-}
-
-double
-JakesPropagationLossModel::PathCoefficients::GetLoss (void)
-{
-  uint16_t N = 4 * m_nOscillators + 2;
-  Time interval = Simulator::Now () - m_lastUpdate;
-  ComplexNumber coef= {0.0, 0.0};
-  ComplexNumber fading;
-  double norm = 0.0;
-  for (uint8_t i = 0; i < m_nRays; i++) 
-    {
-      fading.real = 0.0;
-      fading.imag = 0.0;
-      for (uint8_t j = 0; j <= m_nOscillators; j++) 
-        {
-          m_phases[i][j] += 2.0 * JakesPropagationLossModel::PI * 
-            cos (2.0 * JakesPropagationLossModel::PI * j / N) * m_jakes->m_fd * interval.GetSeconds ();
-          m_phases[i][j] -= 2.0 * JakesPropagationLossModel::PI * 
-            floor (m_phases[i][j] / 2.0 / JakesPropagationLossModel::PI);
-          fading.real += m_jakes->m_amp[j].real * cos (m_phases[i][j]);
-          fading.imag += m_jakes->m_amp[j].imag * cos (m_phases[i][j]);
-          norm += sqrt(pow (m_jakes->m_amp[j].real, 2) + pow(m_jakes->m_amp[j].imag, 2));
-        }
-    coef.real += fading.real;
-    coef.imag += fading.imag;
-    }
-  m_lastUpdate = Simulator::Now ();
-  double k = sqrt (pow (coef.real, 2) + pow (coef.imag, 2)) / norm;
-  NS_LOG_DEBUG ("Jakes coef "<< k << " (" << 10 * log10 (k) << "dB)");
-  return 10 * log10 (k);
-}
-
-const double JakesPropagationLossModel::PI = 3.14159265358979323846;
-
-TypeId
-JakesPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::JakesPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<JakesPropagationLossModel> ()
-    .AddAttribute ("NumberOfRaysPerPath",
-                   "The number of rays to use by default for compute the fading coeficent for a given path (default is 1)",
-                   UintegerValue (1),
-		   MakeUintegerAccessor (&JakesPropagationLossModel::SetNRays,
-                                         &JakesPropagationLossModel::GetNRays),
-		   MakeUintegerChecker<uint8_t> ())
-    .AddAttribute ("NumberOfOscillatorsPerRay",
-                   "The number of oscillators to use by default for compute the coeficent for a given ray of a given "
-                   "path (default is 4)",
-                   UintegerValue (4),
-		   MakeUintegerAccessor (&JakesPropagationLossModel::SetNOscillators,
-                                         &JakesPropagationLossModel::GetNOscillators),
-		   MakeUintegerChecker<uint8_t> ())
-    .AddAttribute ("DopplerFreq",
-                   "The doppler frequency in Hz (f_d = v / lambda = v * f / c), the default is 0)",
-                   DoubleValue (0.0),
-		   MakeDoubleAccessor (&JakesPropagationLossModel::m_fd),
-		   MakeDoubleChecker<double> ())
-    .AddAttribute ("Distribution",
-                   "The distribution to choose the initial phases.",
-                   RandomVariableValue (ConstantVariable (1.0)),
-                   MakeRandomVariableAccessor (&JakesPropagationLossModel::m_variable),
-                   MakeRandomVariableChecker ())
-    ;
-  return tid;
-}
-
-JakesPropagationLossModel::JakesPropagationLossModel ()
-  : m_amp (0),
-    m_nRays (0),
-    m_nOscillators (0)
-{}
-
-JakesPropagationLossModel::~JakesPropagationLossModel ()
-{
-  delete [] m_amp;
-  for (PathsList::iterator i = m_paths.end (); i != m_paths.begin (); i--) 
-    {
-      PathsSet *ps = *i;
-      for (DestinationList::iterator r = ps->receivers.begin (); r != ps->receivers.end (); r++) 
-        {
-          PathCoefficients *pc = *r;
-          delete pc;
-        }
-      delete ps;
-    }
-}
-
-void
-JakesPropagationLossModel::SetNRays (uint8_t nRays)
-{
-  m_nRays = nRays;
-}
-
-void
-JakesPropagationLossModel::SetNOscillators (uint8_t nOscillators)
-{
-  m_nOscillators = nOscillators;
-  delete [] m_amp;
-  uint16_t N = 4 * m_nOscillators + 2;
-  m_amp = new ComplexNumber[m_nOscillators + 1];
-  m_amp[0].real = 2.0 * sqrt(2.0 / N) * cos (PI / 4.0);
-  m_amp[0].imag = 2.0 * sqrt(2.0 / N) * sin (PI / 4.0);
-  for (uint8_t i = 1; i <= m_nOscillators; i++) 
-    {
-      double beta = PI * (double)i / m_nOscillators;
-      m_amp[i].real = 4.0 * cos (beta) / sqrt(N);
-      m_amp[i].imag = 4.0 * sin (beta) / sqrt(N);
-    }
-}
-
-uint8_t 
-JakesPropagationLossModel::GetNRays (void) const
-{
-  return m_nRays;
-}
-uint8_t 
-JakesPropagationLossModel::GetNOscillators (void) const
-{
-  return m_nOscillators;
-}
-
-
-double 
-JakesPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                          Ptr<MobilityModel> a,
-                                          Ptr<MobilityModel> b) const
-{
-  PathsList::iterator i = m_paths.end ();
-  while (i != m_paths.begin ()) 
-    {
-      i--;
-      PathsSet *ps = *i;
-      if (ps->sender == a) 
-        {
-          m_paths.erase (i);
-          m_paths.push_back (ps);
-          for (DestinationList::iterator r = ps->receivers.begin (); r != ps->receivers.end (); r++) 
-            {
-              PathCoefficients *pc = *r;
-              if (pc->GetReceiver () == b) 
-                {
-                  ps->receivers.erase (r);
-                  ps->receivers.push_back (pc);
-                  return txPowerDbm + pc->GetLoss ();
-                }
-            }
-          PathCoefficients *pc = new PathCoefficients (this, b, m_nRays, m_nOscillators);
-          ps->receivers.push_back (pc);
-          return txPowerDbm + pc->GetLoss ();
-        }
-    }
-  PathsSet *ps = new PathsSet;
-  ps->sender = a;
-  PathCoefficients *pc = new PathCoefficients (this, b, m_nRays, m_nOscillators);
-  ps->receivers.push_back (pc);
-  m_paths.push_back (ps);
-  return txPowerDbm + pc->GetLoss ();
-}
-
-} // namespace ns3
-
--- a/src/common/jakes-propagation-loss-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Federico Maguolo <maguolof@dei.unipd.it>
- */
-#ifndef PROPAGATION_JAKES_MODEL_H
-#define PROPAGATION_JAKES_MODEL_H
-
-#include "ns3/nstime.h"
-#include "propagation-loss-model.h"
-
-namespace ns3 {
-
-
-/**
- * \brief a Jakes propagation loss model
- *
- * The Jakes propagation loss model implemented here is 
- * described in [1].
- * 
- *
- * We call path the set of rays that depart from a given 
- * transmitter and arrive to a given receiver. For each ray
- * The complex coefficient is compute as follow:
- * \f[ u(t)=u_c(t) + j u_s(t)\f]
- * \f[ u_c(t) = \frac{2}{\sqrt{N}}\sum_{n=0}^{M}a_n\cos(\omega_n t+\phi_n)\f]
- * \f[ u_s(t) = \frac{2}{\sqrt{N}}\sum_{n=0}^{M}b_n\cos(\omega_n t+\phi_n)\f]
- * where
- * \f[ a_n=\left \{ \begin{array}{ll}
- * \sqrt{2}\cos\beta_0 & n=0 \\
- * 2\cos\beta_n & n=1,2,\ldots,M
- * \end{array}
- * \right .\f]
- * \f[ b_n=\left \{ \begin{array}{ll}
- * \sqrt{2}\sin\beta_0 & n=0 \\
- * 2\sin\beta_n & n=1,2,\ldots,M
- * \end{array}
- * \right .\f]
- * \f[ \beta_n=\left \{ \begin{array}{ll}
- * \frac{\pi}{4} & n=0 \\
- * \frac{\pi n}{M} & n=1,2,\ldots,M
- * \end{array}
- * \right .\f]
- * \f[ \omega_n=\left \{ \begin{array}{ll}
- * 2\pi f_d & n=0 \\
- * 2\pi f_d \cos\frac{2\pi n}{N} & n=1,2,\ldots,M
- * \end{array}
- * \right .\f]
- *
- * The parameter \f$f_d\f$ is the doppler frequency and \f$N=4M+2\f$ where
- * \f$M\f$ is the number of oscillators per ray.
- *
- * The attenuation coefficent of the path is the magnitude of the sum of 
- * all the ray coefficients. This attenuation coefficient could be greater than
- * \f$1\f$, hence it is divide by \f$ \frac{2N_r}{\sqrt{N}} \sum_{n+0}^{M}\sqrt{a_n^2 +b_n^2}\f$
- * where \f$N_r\f$ is the number of rays.
- *
- * The initail phases \f$\phi_i\f$ are random and they are choosen according 
- * to a given distribution.
- * 
- * [1] Y. R. Zheng and C. Xiao, "Simulation Models With Correct 
- * Statistical Properties for Rayleigh Fading Channel", IEEE
- * Trans. on Communications, Vol. 51, pp 920-928, June 2003
- */
-class JakesPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  JakesPropagationLossModel ();
-  virtual ~JakesPropagationLossModel ();
-
-  /**
-   * \param nRays Number of rays per path
-   *
-   * Set the number of rays for each path
-   */
-  void SetNRays (uint8_t nRays);
-  /**
-   * \param nOscillators Number of oscillators
-   *
-   * Set the number of oscillators to use to compute the ray coefficient
-   */
-  void SetNOscillators (uint8_t nOscillators);
-
-  uint8_t GetNRays (void) const;
-  uint8_t GetNOscillators (void) const;
-
-private:
-  JakesPropagationLossModel (const JakesPropagationLossModel &o);
-  JakesPropagationLossModel & operator = (const JakesPropagationLossModel &o);
-  void DoConstruct (void);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-
-  class PathCoefficients;
-  struct ComplexNumber {
-    double real;
-    double imag;
-  };
-  friend class PathCoefficents;
-  typedef std::vector<PathCoefficients *> DestinationList;
-  struct PathsSet {
-    Ptr<MobilityModel> sender;
-    DestinationList receivers;
-  };
-  typedef std::vector<PathsSet *> PathsList;
-
-  
-  static const double PI;
-  ComplexNumber* m_amp;
-  RandomVariable m_variable;
-  double m_fd;  
-  mutable PathsList m_paths;
-  uint8_t m_nRays;
-  uint8_t m_nOscillators;
-};
-
-} // namespace ns3
-
-#endif /* PROPAGATION_JAKES_MODEL_H */
-
-
--- a/src/common/propagation-delay-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- */
-#include "propagation-delay-model.h"
-#include "ns3/random-variable.h"
-#include "ns3/mobility-model.h"
-#include "ns3/double.h"
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (PropagationDelayModel);
-
-TypeId 
-PropagationDelayModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::PropagationDelayModel")
-    .SetParent<Object> ()
-    ;
-  return tid;
-}
-
-PropagationDelayModel::~PropagationDelayModel ()
-{}
-
-NS_OBJECT_ENSURE_REGISTERED (RandomPropagationDelayModel);
-
-TypeId 
-RandomPropagationDelayModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::RandomPropagationDelayModel")
-    .SetParent<PropagationDelayModel> ()
-    .AddConstructor<RandomPropagationDelayModel> ()
-    .AddAttribute ("Variable",
-                   "The random variable which generates random delays (s).",
-                   RandomVariableValue (UniformVariable (0.0, 1.0)),
-                   MakeRandomVariableAccessor (&RandomPropagationDelayModel::m_variable),
-                   MakeRandomVariableChecker ())
-    ;
-  return tid;
-}
-
-RandomPropagationDelayModel::RandomPropagationDelayModel ()
-{}
-RandomPropagationDelayModel::~RandomPropagationDelayModel ()
-{}
-Time 
-RandomPropagationDelayModel::GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
-{
-  return Seconds (m_variable.GetValue ());
-}
-
-NS_OBJECT_ENSURE_REGISTERED (ConstantSpeedPropagationDelayModel);
-
-TypeId
-ConstantSpeedPropagationDelayModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::ConstantSpeedPropagationDelayModel")
-    .SetParent<PropagationDelayModel> ()
-    .AddConstructor<ConstantSpeedPropagationDelayModel> ()
-    .AddAttribute ("Speed", "The speed (m/s)",
-                   DoubleValue (300000000.0),
-                   MakeDoubleAccessor (&ConstantSpeedPropagationDelayModel::m_speed),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-}
-
-ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel ()
-{}
-Time 
-ConstantSpeedPropagationDelayModel::GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
-{
-  double distance = a->GetDistanceFrom (b);
-  double seconds = distance / m_speed;
-  return Seconds (seconds);
-}
-void 
-ConstantSpeedPropagationDelayModel::SetSpeed (double speed)
-{
-  m_speed = speed;
-}
-double 
-ConstantSpeedPropagationDelayModel::GetSpeed (void) const
-{
-  return m_speed;
-}
-
-} // namespace ns3
--- a/src/common/propagation-delay-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- */
-#ifndef PROPAGATION_DELAY_MODEL_H
-#define PROPAGATION_DELAY_MODEL_H
-
-#include "ns3/ptr.h"
-#include "ns3/object.h"
-#include "ns3/nstime.h"
-#include "ns3/random-variable.h"
-
-namespace ns3 {
-
-class MobilityModel;
-
-/**
- * \brief calculate a propagation delay.
- */
-class PropagationDelayModel : public Object
-{
-public:
-  static TypeId GetTypeId (void);
-  virtual ~PropagationDelayModel ();
-  /**
-   * \param a the source
-   * \param b the destination
-   * \returns the calculated propagation delay
-   *
-   * Calculate the propagation delay between the specified
-   * source and destination.
-   */
-  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const = 0;
-};
-
-/**
- * \brief the propagation delay is random
- */
-class RandomPropagationDelayModel : public PropagationDelayModel
-{
-public:
-  static TypeId GetTypeId (void);
-
-  /**
-   * Use the default parameters from PropagationDelayRandomDistribution.
-   */
-  RandomPropagationDelayModel ();
-  virtual ~RandomPropagationDelayModel ();
-  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
-private:
-  RandomVariable m_variable;
-};
-
-/**
- * \brief the propagation speed is constant
- */
-class ConstantSpeedPropagationDelayModel : public PropagationDelayModel
-{
-public:
-  static TypeId GetTypeId (void);
-
-  /**
-   * Use the default parameters from PropagationDelayConstantSpeed.
-   */
-  ConstantSpeedPropagationDelayModel ();
-  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
-  /**
-   * \param speed the new speed (m/s)
-   */
-  void SetSpeed (double speed);
-  /**
-   * \returns the current propagation speed (m/s).
-   */
-  double GetSpeed (void) const;
-private:
-  double m_speed;
-};
-
-} // namespace ns3
-
-#endif /* PROPAGATION_DELAY_MODEL_H */
--- a/src/common/propagation-loss-model-test-suite.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,456 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 The Boeing Company
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include "ns3/log.h"
-#include "ns3/abort.h"
-#include "ns3/test.h"
-#include "ns3/config.h"
-#include "ns3/double.h"
-#include "ns3/propagation-loss-model.h"
-#include "ns3/constant-position-mobility-model.h"
-#include "ns3/simulator.h"
-
-using namespace ns3;
-
-NS_LOG_COMPONENT_DEFINE ("PropagationLossModelsTest");
-
-// ===========================================================================
-// This is a simple test to validate propagation loss models of ns-3 wifi.
-// See the chapter in the ns-3 testing and validation guide for more detail
-// ===========================================================================
-//
-class FriisPropagationLossModelTestCase : public TestCase
-{
-public:
-  FriisPropagationLossModelTestCase ();
-  virtual ~FriisPropagationLossModelTestCase ();
-
-private:
-  virtual void DoRun (void);
-
-  typedef struct {
-    Vector m_position;
-    double m_pt;  // dBm
-    double m_pr;  // W
-    double m_tolerance;
-  } TestVector;
-
-  TestVectors<TestVector> m_testVectors;
-};
-
-FriisPropagationLossModelTestCase::FriisPropagationLossModelTestCase ()
-  : TestCase ("Check to see that the ns-3 Friis propagation loss model provides correct received power"), m_testVectors ()
-{
-}
-
-FriisPropagationLossModelTestCase::~FriisPropagationLossModelTestCase ()
-{
-}
-
-void
-FriisPropagationLossModelTestCase::DoRun (void)
-{
-  // The ns-3 testing manual gives more background on the values selected
-  // for this test.  First, set a few defaults. 
-
-  // wavelength at 2.4 GHz is 0.125m
-  Config::SetDefault ("ns3::FriisPropagationLossModel::Lambda", DoubleValue (0.125));
-  Config::SetDefault ("ns3::FriisPropagationLossModel::SystemLoss", DoubleValue (1.0));
-
-  // Select a reference transmit power
-  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
-  double txPowerW = 0.05035702;
-  double txPowerdBm = 10 * log10 (txPowerW) + 30;
-
-  //
-  // We want to test the propagation loss model calculations at a few chosen 
-  // distances and compare the results to those we have manually calculated
-  // according to the model documentation.  The model reference specifies, 
-  // for instance, that the received power at 100m according to the provided
-  // input power will be 4.98265e-10 W.  Since this value specifies the power
-  // to 1e-15 significance, we test the ns-3 calculated value for agreement 
-  // within 5e-16.
-  //
-  TestVector testVector;
-
-  testVector.m_position = Vector (100, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 4.98265e-10;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (500, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 1.99306e-11;
-  testVector.m_tolerance = 5e-17;
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (1000, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 4.98265e-12;
-  testVector.m_tolerance = 5e-18;
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (2000, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 1.24566e-12;
-  testVector.m_tolerance = 5e-18;
-  m_testVectors.Add (testVector);
-
-  // Now, check that the received power values are expected
-
-  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
-  a->SetPosition (Vector (0,0,0));
-  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
-
-  Ptr<FriisPropagationLossModel> lossModel = CreateObject<FriisPropagationLossModel> (); 
-  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
-    {
-      testVector = m_testVectors.Get (i);
-      b->SetPosition (testVector.m_position);
-      double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
-      double resultW =   pow (10.0, resultdBm/10.0)/1000;
-      NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
-    }
-}
-
-// Added for Two-Ray Ground Model - tomhewer@mac.com
-
-class TwoRayGroundPropagationLossModelTestCase : public TestCase
-{
-public:
-  TwoRayGroundPropagationLossModelTestCase ();
-  virtual ~TwoRayGroundPropagationLossModelTestCase ();
-  
-private:
-  virtual void DoRun (void);
-  
-  typedef struct
-  {
-    Vector m_position;
-    double m_pt;  // dBm
-    double m_pr;  // W
-    double m_tolerance;
-  } TestVector;
-  
-  TestVectors<TestVector> m_testVectors;
-};
-
-TwoRayGroundPropagationLossModelTestCase::TwoRayGroundPropagationLossModelTestCase ()
-: TestCase ("Check to see that the ns-3 TwoRayGround propagation loss model provides correct received power"),
-m_testVectors ()
-{
-}
-
-TwoRayGroundPropagationLossModelTestCase::~TwoRayGroundPropagationLossModelTestCase ()
-{
-}
-
-void
-TwoRayGroundPropagationLossModelTestCase::DoRun (void)
-{
-  // wavelength at 2.4 GHz is 0.125m
-  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::Lambda", DoubleValue (0.125));
-  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::SystemLoss", DoubleValue (1.0));
-  
-  // set antenna height to 1.5m above z coordinate
-  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::HeightAboveZ", DoubleValue (1.5));
-  
-  // Select a reference transmit power of 17.0206 dBm
-  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
-  double txPowerW = 0.05035702;
-  double txPowerdBm = 10 * log10 (txPowerW) + 30;
-  
-  //
-  // As with the Friis tests above, we want to test the propagation loss 
-  // model calculations at a few chosen distances and compare the results 
-  // to those we can manually calculate. Let us test the ns-3 calculated 
-  // value for agreement to be within 5e-16, as above.
-  //
-  TestVector testVector;
-  
-  // Below the Crossover distance use Friis so this test should be the same as that above
-  // Crossover = (4 * PI * TxAntennaHeight * RxAntennaHeight) / Lamdba
-  // Crossover = (4 * PI * 1.5 * 1.5) / 0.125 = 226.1946m
-  
-  testVector.m_position = Vector (100, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 4.98265e-10;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  // These values are above the crossover distance and therefore use the Two Ray calculation
-  
-  testVector.m_position = Vector (500, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 4.07891862e-12;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  testVector.m_position = Vector (1000, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 2.5493241375e-13;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  testVector.m_position = Vector (2000, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 1.593327585938e-14;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  // Repeat the tests for non-zero z coordinates
-  
-  // Pr = (0.05035702 * (1.5*1.5) * (2.5*2.5)) / (500*500*500*500) = 1.13303295e-11
-  // dCross = (4 * pi * 1.5 * 2.5) / 0.125 = 376.99m
-  testVector.m_position = Vector (500, 0, 1);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 1.13303295e-11;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  // Pr = (0.05035702 * (1.5*1.5) * (5.5*5.5)) / (1000*1000*1000*1000) = 3.42742467375e-12
-  // dCross = (4 * pi * 1.5 * 5.5) / 0.125 = 829.38m
-  testVector.m_position = Vector (1000, 0, 4);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 3.42742467375e-12;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  // Pr = (0.05035702 * (1.5*1.5) * (11.5*11.5)) / (2000*2000*2000*2000) = 9.36522547734e-13
-  // dCross = (4 * pi * 1.5 * 11.5) / 0.125 = 1734.15m
-  testVector.m_position = Vector (2000, 0, 10);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 9.36522547734e-13;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-  
-  
-  // Now, check that the received power values are expected
-  
-  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
-  a->SetPosition (Vector (0,0,0));
-  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
-  
-  Ptr<TwoRayGroundPropagationLossModel> lossModel = CreateObject<TwoRayGroundPropagationLossModel> (); 
-  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
-  {
-    testVector = m_testVectors.Get (i);
-    b->SetPosition (testVector.m_position);
-    double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
-    double resultW =   pow (10.0, resultdBm / 10.0) / 1000;
-    NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
-  }
-}
-
-
-class LogDistancePropagationLossModelTestCase : public TestCase
-{
-public:
-  LogDistancePropagationLossModelTestCase ();
-  virtual ~LogDistancePropagationLossModelTestCase ();
-
-private:
-  virtual void DoRun (void);
-
-  typedef struct {
-    Vector m_position;
-    double m_pt;  // dBm
-    double m_pr;  // W
-    double m_tolerance;
-  } TestVector;
-
-  TestVectors<TestVector> m_testVectors;
-};
-
-LogDistancePropagationLossModelTestCase::LogDistancePropagationLossModelTestCase ()
-  : TestCase ("Check to see that the ns-3 Log Distance propagation loss model provides correct received power"), m_testVectors ()
-{
-}
-
-LogDistancePropagationLossModelTestCase::~LogDistancePropagationLossModelTestCase ()
-{
-}
-
-void
-LogDistancePropagationLossModelTestCase::DoRun (void)
-{
-  // reference loss at 2.4 GHz is 40.045997
-  Config::SetDefault ("ns3::LogDistancePropagationLossModel::ReferenceLoss", DoubleValue (40.045997));
-  Config::SetDefault ("ns3::LogDistancePropagationLossModel::Exponent", DoubleValue (3));
-
-  // Select a reference transmit power
-  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
-  double txPowerW = 0.05035702;
-  double txPowerdBm = 10 * log10 (txPowerW) + 30;
-
-  //
-  // We want to test the propagation loss model calculations at a few chosen 
-  // distances and compare the results to those we have manually calculated
-  // according to the model documentation.  The following "TestVector" objects
-  // will drive the test.
-  //
-  TestVector testVector;
-
-  testVector.m_position = Vector (10, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 4.98265e-9;
-  testVector.m_tolerance = 5e-15; 
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (20, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 6.22831e-10;
-  testVector.m_tolerance = 5e-16;
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (40, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 7.78539e-11;
-  testVector.m_tolerance = 5e-17;
-  m_testVectors.Add (testVector);
-
-  testVector.m_position = Vector (80, 0, 0);
-  testVector.m_pt = txPowerdBm;
-  testVector.m_pr = 9.73173e-12;
-  testVector.m_tolerance = 5e-17;
-  m_testVectors.Add (testVector);
-
-  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
-  a->SetPosition (Vector (0,0,0));
-  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
-
-  Ptr<LogDistancePropagationLossModel> lossModel = CreateObject<LogDistancePropagationLossModel> (); 
-  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
-    {
-      testVector = m_testVectors.Get (i);
-      b->SetPosition (testVector.m_position);
-      double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
-      double resultW =   pow (10.0, resultdBm/10.0)/1000;
-      NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
-    }
-}
-
-class MatrixPropagationLossModelTestCase : public TestCase
-{
-public:
-  MatrixPropagationLossModelTestCase ();
-  virtual ~MatrixPropagationLossModelTestCase ();
-
-private:
-  virtual void DoRun (void);
-};
-
-MatrixPropagationLossModelTestCase::MatrixPropagationLossModelTestCase ()
-  : TestCase ("Test MatrixPropagationLossModel")
-{
-}
-
-MatrixPropagationLossModelTestCase::~MatrixPropagationLossModelTestCase ()
-{
-}
-
-void
-MatrixPropagationLossModelTestCase::DoRun (void)
-{
-  Ptr<Node> n[3];
-  Ptr<MobilityModel> m[3];
-  for (int i = 0; i < 3; ++i)
-    {
-      n[i] = CreateObject<Node> ();
-      m[i] = CreateObject<ConstantPositionMobilityModel> ();
-      n[i]->AggregateObject (m[i]);
-    }
-  
-  MatrixPropagationLossModel loss;
-  // no loss by default
-  loss.SetDefaultLoss (0);       
-  // -10 dB for 0 -> 1 and 1 -> 0
-  loss.SetLoss (n[0], n[1], 10); 
-  // -30 dB from 0 to 2 and -100 dB from 2 to 0
-  loss.SetLoss (n[0], n[2], 30, /*symmetric = */false); 
-  loss.SetLoss (n[2], n[0], 100, /*symmetric = */false); 
-  // default from 1 to 2
-  
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[0], m[1]), -10, "Loss 0 -> 1 incorrect");
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[1], m[0]), -10, "Loss 1 -> 0 incorrect");
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[0], m[2]), -30, "Loss 0 -> 2 incorrect");
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[2], m[0]), -100, "Loss 2 -> 0 incorrect");
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[1], m[2]), 0, "Loss 1 -> 2 incorrect");
-  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[2], m[1]), 0, "Loss 2 -> 1 incorrect");
-
-  Simulator::Destroy ();
-}
-
-class RangePropagationLossModelTestCase : public TestCase
-{
-public:
-  RangePropagationLossModelTestCase ();
-  virtual ~RangePropagationLossModelTestCase ();
-
-private:
-  virtual void DoRun (void);
-};
-
-RangePropagationLossModelTestCase::RangePropagationLossModelTestCase ()
-  : TestCase ("Test RangePropagationLossModel")
-{
-}
-
-RangePropagationLossModelTestCase::~RangePropagationLossModelTestCase ()
-{
-}
-
-void
-RangePropagationLossModelTestCase::DoRun (void)
-{
-  Config::SetDefault ("ns3::RangePropagationLossModel::MaxRange", DoubleValue (127.2));
-  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
-  a->SetPosition (Vector (0,0,0));
-  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
-  b->SetPosition (Vector (127.1,0,0));  // within range
-
-  Ptr<RangePropagationLossModel> lossModel = CreateObject<RangePropagationLossModel> (); 
-
-  double txPwrdBm = -80.0;
-  double tolerance = 1e-6;
-  double resultdBm = lossModel->CalcRxPower (txPwrdBm, a, b);
-  NS_TEST_EXPECT_MSG_EQ_TOL (resultdBm, txPwrdBm, tolerance, "Got unexpected rcv power");
-  b->SetPosition (Vector (127.25,0,0));  // beyond range
-  resultdBm = lossModel->CalcRxPower (txPwrdBm, a, b);
-  NS_TEST_EXPECT_MSG_EQ_TOL (resultdBm, -1000.0, tolerance, "Got unexpected rcv power");
-  Simulator::Destroy ();
-}
-
-class PropagationLossModelsTestSuite : public TestSuite
-{
-public:
-  PropagationLossModelsTestSuite ();
-};
-
-PropagationLossModelsTestSuite::PropagationLossModelsTestSuite ()
-  : TestSuite ("propagation-loss-model", UNIT)
-{
-  AddTestCase (new FriisPropagationLossModelTestCase);
-  AddTestCase (new TwoRayGroundPropagationLossModelTestCase);
-  AddTestCase (new LogDistancePropagationLossModelTestCase);
-  AddTestCase (new MatrixPropagationLossModelTestCase);
-  AddTestCase (new RangePropagationLossModelTestCase);
-}
-
-static PropagationLossModelsTestSuite propagationLossModelsTestSuite;
--- a/src/common/propagation-loss-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,832 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- * Contributions: Timo Bingmann <timo.bingmann@student.kit.edu>
- * Contributions: Tom Hewer <tomhewer@mac.com> for Two Ray Ground Model
- *                Pavel Boyko <boyko@iitp.ru> for matrix
- */
-
-#include "propagation-loss-model.h"
-#include "ns3/log.h"
-#include "ns3/mobility-model.h"
-#include "ns3/boolean.h"
-#include "ns3/double.h"
-#include <math.h>
-
-NS_LOG_COMPONENT_DEFINE ("PropagationLossModel");
-
-namespace ns3 {
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (PropagationLossModel);
-
-TypeId 
-PropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::PropagationLossModel")
-    .SetParent<Object> ()
-    ;
-  return tid;
-}
-
-PropagationLossModel::PropagationLossModel ()
-  : m_next (0)
-{}
-
-PropagationLossModel::~PropagationLossModel ()
-{}
-
-void 
-PropagationLossModel::SetNext (Ptr<PropagationLossModel> next)
-{
-  m_next = next;
-}
-
-double 
-PropagationLossModel::CalcRxPower (double txPowerDbm,
-                                   Ptr<MobilityModel> a,
-                                   Ptr<MobilityModel> b) const
-{
-  double self = DoCalcRxPower (txPowerDbm, a, b);
-  if (m_next != 0)
-    {
-      self = m_next->CalcRxPower (self, a, b);
-    }
-  return self;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (RandomPropagationLossModel);
-
-TypeId 
-RandomPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::RandomPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<RandomPropagationLossModel> ()
-    .AddAttribute ("Variable", "The random variable used to pick a loss everytime CalcRxPower is invoked.",
-                   RandomVariableValue (ConstantVariable (1.0)),
-                   MakeRandomVariableAccessor (&RandomPropagationLossModel::m_variable),
-                   MakeRandomVariableChecker ())
-    ;
-  return tid;
-}
-RandomPropagationLossModel::RandomPropagationLossModel ()
-  : PropagationLossModel ()
-{}
-
-RandomPropagationLossModel::~RandomPropagationLossModel ()
-{}
-
-double 
-RandomPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                           Ptr<MobilityModel> a,
-                                           Ptr<MobilityModel> b) const
-{
-  double rxc = -m_variable.GetValue ();
-  NS_LOG_DEBUG ("attenuation coefficent="<<rxc<<"Db");
-  return txPowerDbm + rxc;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (FriisPropagationLossModel);
-
-const double FriisPropagationLossModel::PI = 3.14159265358979323846;
-
-TypeId 
-FriisPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::FriisPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<FriisPropagationLossModel> ()
-    .AddAttribute ("Lambda", 
-                   "The wavelength  (default is 5.15 GHz at 300 000 km/s).",
-                   DoubleValue (300000000.0 / 5.150e9),
-                   MakeDoubleAccessor (&FriisPropagationLossModel::m_lambda),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("SystemLoss", "The system loss",
-                   DoubleValue (1.0),
-                   MakeDoubleAccessor (&FriisPropagationLossModel::m_systemLoss),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("MinDistance", 
-                   "The distance under which the propagation model refuses to give results (m)",
-                   DoubleValue (0.5),
-                   MakeDoubleAccessor (&FriisPropagationLossModel::SetMinDistance,
-                                       &FriisPropagationLossModel::GetMinDistance),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-}
-
-FriisPropagationLossModel::FriisPropagationLossModel ()
-{}
-void 
-FriisPropagationLossModel::SetSystemLoss (double systemLoss)
-{
-  m_systemLoss = systemLoss;
-}
-double 
-FriisPropagationLossModel::GetSystemLoss (void) const
-{
-  return m_systemLoss;
-}
-void 
-FriisPropagationLossModel::SetMinDistance (double minDistance)
-{
-  m_minDistance = minDistance;
-}
-double 
-FriisPropagationLossModel::GetMinDistance (void) const
-{
-  return m_minDistance;
-}
-void 
-FriisPropagationLossModel::SetLambda (double frequency, double speed)
-{
-  m_lambda = speed / frequency;
-}
-void 
-FriisPropagationLossModel::SetLambda (double lambda)
-{
-  m_lambda = lambda;
-}
-double 
-FriisPropagationLossModel::GetLambda (void) const
-{
-  return m_lambda;
-}
-
-double 
-FriisPropagationLossModel::DbmToW (double dbm) const
-{
-  double mw = pow(10.0,dbm/10.0);
-  return mw / 1000.0;
-}
-
-double
-FriisPropagationLossModel::DbmFromW (double w) const
-{
-  double dbm = log10 (w * 1000.0) * 10.0;
-  return dbm;
-}
-
-double 
-FriisPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                          Ptr<MobilityModel> a,
-                                          Ptr<MobilityModel> b) const
-{
-  /*
-   * Friis free space equation:
-   * where Pt, Gr, Gr and P are in Watt units
-   * L is in meter units.
-   *
-   *    P     Gt * Gr * (lambda^2)
-   *   --- = ---------------------
-   *    Pt     (4 * pi * d)^2 * L
-   *
-   * Gt: tx gain (unit-less)
-   * Gr: rx gain (unit-less)
-   * Pt: tx power (W)
-   * d: distance (m)
-   * L: system loss
-   * lambda: wavelength (m)
-   *
-   * Here, we ignore tx and rx gain and the input and output values 
-   * are in dB or dBm:
-   *
-   *                           lambda^2
-   * rx = tx +  10 log10 (-------------------)
-   *                       (4 * pi * d)^2 * L
-   *
-   * rx: rx power (dB)
-   * tx: tx power (dB)
-   * d: distance (m)
-   * L: system loss (unit-less)
-   * lambda: wavelength (m)
-   */
-  double distance = a->GetDistanceFrom (b);
-  if (distance <= m_minDistance)
-    {
-      return txPowerDbm;
-    }
-  double numerator = m_lambda * m_lambda;
-  double denominator = 16 * PI * PI * distance * distance * m_systemLoss;
-  double pr = 10 * log10 (numerator / denominator);
-  NS_LOG_DEBUG ("distance="<<distance<<"m, attenuation coefficient="<<pr<<"dB");
-  return txPowerDbm + pr;
-}
-
-// ------------------------------------------------------------------------- //
-// -- Two-Ray Ground Model ported from NS-2 -- tomhewer@mac.com -- Nov09 //
-
-NS_OBJECT_ENSURE_REGISTERED (TwoRayGroundPropagationLossModel);
-
-const double TwoRayGroundPropagationLossModel::PI = 3.14159265358979323846;
-
-TypeId 
-TwoRayGroundPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::TwoRayGroundPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<TwoRayGroundPropagationLossModel> ()
-    .AddAttribute ("Lambda",
-                   "The wavelength  (default is 5.15 GHz at 300 000 km/s).",
-                   DoubleValue (300000000.0 / 5.150e9),
-                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_lambda),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("SystemLoss", "The system loss",
-                   DoubleValue (1.0),
-                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_systemLoss),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("MinDistance",
-                   "The distance under which the propagation model refuses to give results (m)",
-                   DoubleValue (0.5),
-                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::SetMinDistance,
-                                       &TwoRayGroundPropagationLossModel::GetMinDistance),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("HeightAboveZ",
-                   "The height of the antenna (m) above the node's Z coordinate",
-                   DoubleValue (0),
-                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_heightAboveZ),
-                   MakeDoubleChecker<double> ())
-  ;
-  return tid;
-}
-
-TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel ()
-{
-}
-void
-TwoRayGroundPropagationLossModel::SetSystemLoss (double systemLoss)
-{
-  m_systemLoss = systemLoss;
-}
-double
-TwoRayGroundPropagationLossModel::GetSystemLoss (void) const
-{
-  return m_systemLoss;
-}
-void
-TwoRayGroundPropagationLossModel::SetMinDistance (double minDistance)
-{
-  m_minDistance = minDistance;
-}
-double
-TwoRayGroundPropagationLossModel::GetMinDistance (void) const
-{
-  return m_minDistance;
-}
-void
-TwoRayGroundPropagationLossModel::SetHeightAboveZ (double heightAboveZ)
-{
-  m_heightAboveZ = heightAboveZ;
-}
-void 
-TwoRayGroundPropagationLossModel::SetLambda (double frequency, double speed)
-{
-  m_lambda = speed / frequency;
-}
-void 
-TwoRayGroundPropagationLossModel::SetLambda (double lambda)
-{
-  m_lambda = lambda;
-}
-double 
-TwoRayGroundPropagationLossModel::GetLambda (void) const
-{
-  return m_lambda;
-}
-
-double 
-TwoRayGroundPropagationLossModel::DbmToW (double dbm) const
-{
-  double mw = pow (10.0,dbm / 10.0);
-  return mw / 1000.0;
-}
-
-double
-TwoRayGroundPropagationLossModel::DbmFromW (double w) const
-{
-  double dbm = log10 (w * 1000.0) * 10.0;
-  return dbm;
-}
-
-double 
-TwoRayGroundPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                                 Ptr<MobilityModel> a,
-                                                 Ptr<MobilityModel> b) const
-{
-  /*
-   * Two-Ray Ground equation:
-   *
-   * where Pt, Gt and Gr are in dBm units
-   * L, Ht and Hr are in meter units.
-   *
-   *   Pr      Gt * Gr * (Ht^2 * Hr^2)
-   *   -- =  (-------------------------)
-   *   Pt            d^4 * L
-   *
-   * Gt: tx gain (unit-less)
-   * Gr: rx gain (unit-less)
-   * Pt: tx power (dBm)
-   * d: distance (m)
-   * L: system loss
-   * Ht: Tx antenna height (m)
-   * Hr: Rx antenna height (m)
-   * lambda: wavelength (m)
-   *
-   * As with the Friis model we ignore tx and rx gain and output values
-   * are in dB or dBm
-   *
-   *                      (Ht * Ht) * (Hr * Hr)
-   * rx = tx + 10 log10 (-----------------------)
-   *                      (d * d * d * d) * L
-   */
-  double distance = a->GetDistanceFrom (b);
-  if (distance <= m_minDistance)
-    {
-      return txPowerDbm;
-    }
-
-  // Set the height of the Tx and Rx antennae
-  double txAntHeight = a->GetPosition ().z + m_heightAboveZ;
-  double rxAntHeight = b->GetPosition ().z + m_heightAboveZ;
-
-  // Calculate a crossover distance, under which we use Friis
-  /*
-   * 
-   * dCross = (4 * pi * Ht * Hr) / lambda
-   *
-   */
-
-  double dCross = (4 * PI * txAntHeight * rxAntHeight) / GetLambda ();
-  double tmp = 0;
-  if (distance <= dCross)
-    {
-      // We use Friis
-      double numerator = m_lambda * m_lambda;
-      tmp = PI * distance;
-      double denominator = 16 * tmp * tmp * m_systemLoss;
-      double pr = 10 * log10 (numerator / denominator);
-      NS_LOG_DEBUG ("Receiver within crossover (" << dCross << "m) for Two_ray path; using Friis");
-      NS_LOG_DEBUG ("distance=" << distance << "m, attenuation coefficient=" << pr << "dB");
-      return txPowerDbm + pr;
-    }
-  else   // Use Two-Ray Pathloss
-    {
-      tmp = txAntHeight * rxAntHeight;
-      double rayNumerator = tmp * tmp;
-      tmp = distance * distance;
-      double rayDenominator = tmp * tmp * m_systemLoss;
-      double rayPr = 10 * log10 (rayNumerator / rayDenominator);
-      NS_LOG_DEBUG ("distance=" << distance << "m, attenuation coefficient=" << rayPr << "dB");
-      return txPowerDbm + rayPr;
-
-    }
-}
-
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (LogDistancePropagationLossModel);
-
-TypeId
-LogDistancePropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::LogDistancePropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<LogDistancePropagationLossModel> ()
-    .AddAttribute ("Exponent",
-                   "The exponent of the Path Loss propagation model",
-                   DoubleValue (3.0),
-                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_exponent),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("ReferenceDistance",
-                   "The distance at which the reference loss is calculated (m)",
-                   DoubleValue (1.0),
-                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceDistance),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("ReferenceLoss",
-                   "The reference loss at reference distance (dB). (Default is Friis at 1m with 5.15 GHz)",
-                   DoubleValue (46.6777),
-                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceLoss),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-                   
-}
-
-LogDistancePropagationLossModel::LogDistancePropagationLossModel ()
-{}
-
-void 
-LogDistancePropagationLossModel::SetPathLossExponent (double n)
-{
-  m_exponent = n;
-}
-void 
-LogDistancePropagationLossModel::SetReference (double referenceDistance, double referenceLoss)
-{
-  m_referenceDistance = referenceDistance;
-  m_referenceLoss = referenceLoss;
-}
-double 
-LogDistancePropagationLossModel::GetPathLossExponent (void) const
-{
-  return m_exponent;
-}
-  
-double 
-LogDistancePropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                                Ptr<MobilityModel> a,
-                                                Ptr<MobilityModel> b) const
-{
-  double distance = a->GetDistanceFrom (b);
-  if (distance <= m_referenceDistance)
-    {
-      return txPowerDbm;
-    }
-  /**
-   * The formula is:
-   * rx = 10 * log (Pr0(tx)) - n * 10 * log (d/d0)
-   *
-   * Pr0: rx power at reference distance d0 (W)
-   * d0: reference distance: 1.0 (m)
-   * d: distance (m)
-   * tx: tx power (dB)
-   * rx: dB
-   *
-   * Which, in our case is:
-   *
-   * rx = rx0(tx) - 10 * n * log (d/d0)
-   */
-  double pathLossDb = 10 * m_exponent * log10 (distance / m_referenceDistance);
-  double rxc = -m_referenceLoss - pathLossDb;
-  NS_LOG_DEBUG ("distance="<<distance<<"m, reference-attenuation="<<-m_referenceLoss<<"dB, "<<
-		"attenuation coefficient="<<rxc<<"db");
-  return txPowerDbm + rxc;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (ThreeLogDistancePropagationLossModel);
-
-TypeId
-ThreeLogDistancePropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::ThreeLogDistancePropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<ThreeLogDistancePropagationLossModel> ()
-    .AddAttribute ("Distance0",
-                   "Beginning of the first (near) distance field",
-                   DoubleValue (1.0),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance0),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Distance1",
-                   "Beginning of the second (middle) distance field.",
-                   DoubleValue (200.0),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance1),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Distance2",
-                   "Beginning of the third (far) distance field.",
-                   DoubleValue (500.0),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance2),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Exponent0",
-                   "The exponent for the first field.",
-                   DoubleValue (1.9),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent0),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Exponent1",
-                   "The exponent for the second field.",
-                   DoubleValue (3.8),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent1),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Exponent2",
-                   "The exponent for the third field.",
-                   DoubleValue (3.8),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent2),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("ReferenceLoss",
-                   "The reference loss at distance d0 (dB). (Default is Friis at 1m with 5.15 GHz)",
-                   DoubleValue (46.6777),
-                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_referenceLoss),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-                   
-}
-
-ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel ()
-{
-}
-
-double 
-ThreeLogDistancePropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                                     Ptr<MobilityModel> a,
-                                                     Ptr<MobilityModel> b) const
-{
-  double distance = a->GetDistanceFrom (b);
-  NS_ASSERT(distance >= 0);
-
-  // See doxygen comments for the formula and explanation
-
-  double pathLossDb;
-
-  if (distance < m_distance0)
-    {
-      pathLossDb = 0;
-    }
-  else if (distance < m_distance1)
-    {
-      pathLossDb = m_referenceLoss
-        + 10 * m_exponent0 * log10(distance / m_distance0);
-    }
-  else if (distance < m_distance2)
-    {
-      pathLossDb = m_referenceLoss
-        + 10 * m_exponent0 * log10(m_distance1 / m_distance0)
-        + 10 * m_exponent1 * log10(distance / m_distance1);
-    }
-  else
-    {
-      pathLossDb = m_referenceLoss
-        + 10 * m_exponent0 * log10(m_distance1 / m_distance0)
-        + 10 * m_exponent1 * log10(m_distance2 / m_distance1)
-        + 10 * m_exponent2 * log10(distance / m_distance2);
-    }
-
-  NS_LOG_DEBUG ("ThreeLogDistance distance=" << distance << "m, " <<
-                "attenuation=" << pathLossDb << "dB");
-
-  return txPowerDbm - pathLossDb;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (NakagamiPropagationLossModel);
-
-TypeId
-NakagamiPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::NakagamiPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<NakagamiPropagationLossModel> ()
-    .AddAttribute ("Distance1",
-                   "Beginning of the second distance field. Default is 80m.",
-                   DoubleValue (80.0),
-                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_distance1),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("Distance2",
-                   "Beginning of the third distance field. Default is 200m.",
-                   DoubleValue (200.0),
-                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_distance2),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("m0",
-                   "m0 for distances smaller than Distance1. Default is 1.5.",
-                   DoubleValue (1.5),
-                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m0),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("m1",
-                   "m1 for distances smaller than Distance2. Default is 0.75.",
-                   DoubleValue (0.75),
-                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m1),
-                   MakeDoubleChecker<double> ())
-    .AddAttribute ("m2",
-                   "m2 for distances greater than Distance2. Default is 0.75.",
-                   DoubleValue (0.75),
-                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m2),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-                   
-}
-
-NakagamiPropagationLossModel::NakagamiPropagationLossModel ()
-{}
-
-double 
-NakagamiPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                             Ptr<MobilityModel> a,
-                                             Ptr<MobilityModel> b) const
-{
-  // select m parameter
-
-  double distance = a->GetDistanceFrom (b);
-  NS_ASSERT(distance >= 0);
-
-  double m;
-  if (distance < m_distance1)
-    {
-      m = m_m0;
-    }
-  else if (distance < m_distance2)
-    {
-      m = m_m1;
-    }
-  else
-    {
-      m = m_m2;
-    }
-  
-  // the current power unit is dBm, but Watt is put into the Nakagami /
-  // Rayleigh distribution.
-  double powerW = pow(10, (txPowerDbm - 30) / 10);
-
-  double resultPowerW;
-
-  // switch between Erlang- and Gamma distributions: this is only for
-  // speed. (Gamma is equal to Erlang for any positive integer m.)
-  unsigned int int_m = static_cast<unsigned int>(floor(m));
-
-  if (int_m == m)
-    {
-      resultPowerW = m_erlangRandomVariable.GetValue(int_m, powerW / m);
-    }
-  else
-    {
-      resultPowerW = m_gammaRandomVariable.GetValue(m, powerW / m);
-    }
-
-  double resultPowerDbm = 10 * log10(resultPowerW) + 30;
-
-  NS_LOG_DEBUG ("Nakagami distance=" << distance << "m, " <<
-                "power=" << powerW <<"W, " <<
-                "resultPower=" << resultPowerW << "W=" << resultPowerDbm << "dBm");
-
-  return resultPowerDbm;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (FixedRssLossModel);
-
-TypeId 
-FixedRssLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::FixedRssLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<FixedRssLossModel> ()
-    .AddAttribute ("Rss", "The fixed receiver Rss.",
-                   DoubleValue (-150.0),
-                   MakeDoubleAccessor (&FixedRssLossModel::m_rss),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-}
-FixedRssLossModel::FixedRssLossModel ()
-  : PropagationLossModel ()
-{}
-
-FixedRssLossModel::~FixedRssLossModel ()
-{}
-
-void 
-FixedRssLossModel::SetRss (double rss)
-{
-  m_rss = rss;
-}
-
-double 
-FixedRssLossModel::DoCalcRxPower (double txPowerDbm,
-                                           Ptr<MobilityModel> a,
-                                           Ptr<MobilityModel> b) const
-{
-  return m_rss;
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (MatrixPropagationLossModel);
-
-TypeId 
-MatrixPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::MatrixPropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<MatrixPropagationLossModel> ()
-    .AddAttribute ("DefaultLoss", "The default value for propagation loss, dB.",
-                   DoubleValue (std::numeric_limits<double>::max ()),
-                   MakeDoubleAccessor (&MatrixPropagationLossModel::m_default),
-                   MakeDoubleChecker<double> ())
-    ;
-  return tid;
-}
-
-MatrixPropagationLossModel::MatrixPropagationLossModel ()
-  : PropagationLossModel (), m_default (std::numeric_limits<double>::max ())
-{
-}
-
-MatrixPropagationLossModel::~MatrixPropagationLossModel ()
-{
-}
-
-void 
-MatrixPropagationLossModel::SetDefaultLoss (double loss)
-{
-  m_default = loss;
-}
-
-void
-MatrixPropagationLossModel::SetLoss (Ptr<Node> a, Ptr<Node> b, double loss, bool symmetric)
-{
-  Ptr<MobilityModel> ma = a->GetObject<MobilityModel> ();
-  Ptr<MobilityModel> mb = b->GetObject<MobilityModel> ();
-  NS_ASSERT (ma != 0 && mb != 0);
-
-  MobilityPair p = std::make_pair(ma, mb);
-  std::map<MobilityPair, double>::iterator i = m_loss.find (p);
-  
-  if (i == m_loss.end ())
-    {
-      m_loss.insert (std::make_pair (p, loss));
-    }
-  else
-    {
-      i->second = loss;
-    }
-
-  if (symmetric)
-    {
-      SetLoss (b, a, loss, false);
-    }
-}
-
-double 
-MatrixPropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                           Ptr<MobilityModel> a,
-                                           Ptr<MobilityModel> b) const
-{
-  std::map<MobilityPair, double>::const_iterator i = m_loss.find (std::make_pair (a, b));
-  
-  if (i != m_loss.end ())
-    {
-      return txPowerDbm - i->second;
-    }
-  else
-    {
-      return txPowerDbm - m_default;
-    }
-}
-
-// ------------------------------------------------------------------------- //
-
-NS_OBJECT_ENSURE_REGISTERED (RangePropagationLossModel);
-
-TypeId
-RangePropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::RangePropagationLossModel")
-    .SetParent<PropagationLossModel> ()
-    .AddConstructor<RangePropagationLossModel> ()
-    .AddAttribute ("MaxRange",
-                   "Maximum Transmission Range (meters)",
-                   DoubleValue (250),
-                   MakeDoubleAccessor (&RangePropagationLossModel::m_range),
-                   MakeDoubleChecker<double> ())
-  ;
-  return tid;
-}
-
-RangePropagationLossModel::RangePropagationLossModel ()
-{
-}
-
-double
-RangePropagationLossModel::DoCalcRxPower (double txPowerDbm,
-                                          Ptr<MobilityModel> a,
-                                          Ptr<MobilityModel> b) const
-{
-  double distance = a->GetDistanceFrom (b);
-  if (distance <= m_range)
-    {
-      return txPowerDbm;
-    }
-  else
-    {
-      return -1000;
-    }
-}
-
-// ------------------------------------------------------------------------- //
-
-} // namespace ns3
--- a/src/common/propagation-loss-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,547 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2005,2006,2007 INRIA
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as 
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
- * Contributions: Timo Bingmann <timo.bingmann@student.kit.edu>
- * Contributions: Gary Pei <guangyu.pei@boeing.com> for fixed RSS
- * Contributions: Tom Hewer <tomhewer@mac.com> for two ray ground model
- *                Pavel Boyko <boyko@iitp.ru> for matrix
- */
-
-#ifndef PROPAGATION_LOSS_MODEL_H
-#define PROPAGATION_LOSS_MODEL_H
-
-#include "ns3/object.h"
-#include "ns3/random-variable.h"
-#include "ns3/node.h"
-#include <map>
-
-namespace ns3 {
-
-class MobilityModel;
-
-/**
- * \brief Modelize the propagation loss through a transmission medium
- *
- * Calculate the receive power (dbm) from a transmit power (dbm)
- * and a mobility model for the source and destination positions.
- */
-class PropagationLossModel : public Object
-{
-public:
-  static TypeId GetTypeId (void);
-
-  PropagationLossModel ();
-  virtual ~PropagationLossModel ();
-
-  /**
-   * \brief Enables a chain of loss models to act on the signal
-   * \param The next PropagationLossModel to add to the chain
-   *
-   * This method of chaining propagation loss models only works commutatively
-   * if the propagation loss of all models in the chain are independent
-   * of transmit power.
-   */
-  void SetNext (Ptr<PropagationLossModel> next);
-
-  /**
-   * \param txPowerDbm current transmission power (in dBm)
-   * \param a the mobility model of the source
-   * \param b the mobility model of the destination
-   * \returns the reception power after adding/multiplying propagation loss (in dBm)
-   */
-  double CalcRxPower (double txPowerDbm,
-                      Ptr<MobilityModel> a,
-                      Ptr<MobilityModel> b) const;
-private:
-  PropagationLossModel (const PropagationLossModel &o);
-  PropagationLossModel &operator = (const PropagationLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const = 0;
-
-  Ptr<PropagationLossModel> m_next;
-};
-
-/**
- * \brief The propagation loss follows a random distribution.
- */ 
-class RandomPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-
-  RandomPropagationLossModel ();
-  virtual ~RandomPropagationLossModel ();
-
-private:
-  RandomPropagationLossModel (const RandomPropagationLossModel &o);
-  RandomPropagationLossModel & operator = (const RandomPropagationLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-  RandomVariable m_variable;
-};
-
-/**
- * \brief a Friis propagation loss model
- *
- * The Friis propagation loss model was first described in
- * "A Note on a Simple Transmission Formula", by 
- * "Harald T. Friis".
- * 
- * The original equation was described as:
- *  \f$ \frac{P_r}{P_t} = \frac{A_r A_t}{d^2\lambda^2} \f$
- *  with the following equation for the case of an
- *  isotropic antenna with no heat loss:
- *  \f$ A_{isotr.} = \frac{\lambda^2}{4\pi} \f$
- *
- * The final equation becomes:
- * \f$ \frac{P_r}{P_t} = \frac{\lambda^2}{(4 \pi d)^2} \f$
- *
- * Modern extensions to this original equation are:
- * \f$ P_r = \frac{P_t G_t G_r \lambda^2}{(4 \pi d)^2 L}\f$
- *
- * With:
- *  - \f$ P_r \f$ : reception power (W)
- *  - \f$ P_t \f$ : transmission power (W)
- *  - \f$ G_t \f$ : transmission gain (unit-less)
- *  - \f$ G_r \f$ : reception gain (unit-less)
- *  - \f$ \lambda \f$ : wavelength (m)
- *  - \f$ d \f$ : distance (m)
- *  - \f$ L \f$ : system loss (unit-less)
- *
- *
- * This model is invalid for small distance values.
- * The current implementation returns the txpower as the rxpower
- * for any distance smaller than MinDistance.
- */
-class FriisPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  FriisPropagationLossModel ();
-  /**
-   * \param frequency (Hz)
-   * \param speed (m/s)
-   *
-   * Set the main wavelength used in the Friis model 
-   * calculation.
-   */
-  void SetLambda (double frequency, double speed);
-  /**
-   * \param lambda (m) the wavelength
-   *
-   * Set the main wavelength used in the Friis model 
-   * calculation.
-   */
-  void SetLambda (double lambda);
-  /**
-   * \param systemLoss (dimension-less)
-   *
-   * Set the system loss used by the Friis propagation model.
-   */
-  void SetSystemLoss (double systemLoss);
-
-  /**
-   * \param minDistance the minimum distance
-   *
-   * Below this distance, the txpower is returned
-   * unmodified as the rxpower.
-   */
-  void SetMinDistance (double minDistance);
-
-  /**
-   * \returns the minimum distance.
-   */
-  double GetMinDistance (void) const;
-
-  /**
-   * \returns the current wavelength (m)
-   */
-  double GetLambda (void) const;
-  /**
-   * \returns the current system loss (dimension-less)
-   */
-  double GetSystemLoss (void) const;
-
-private:
-  FriisPropagationLossModel (const FriisPropagationLossModel &o);
-  FriisPropagationLossModel & operator = (const FriisPropagationLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-  double DbmToW (double dbm) const;
-  double DbmFromW (double w) const;
-
-  static const double PI;
-  double m_lambda;
-  double m_systemLoss;
-  double m_minDistance;
-};
-
-/*
- *
- * \brief a Two-Ray Ground propagation loss model ported from NS2
- *
- * Two-ray ground reflection model.
- *
- * \f$ Pr = \frac{Pt * Gt * Gr * (ht^2 * hr^2)}{d^4 * L} \f$
- *
- * The original equation in Rappaport's book assumes L = 1.
- * To be consistent with the free space equation, L is added here.
- *
- * Ht and Hr are set at the respective nodes z coordinate plus a model parameter
- * set via SetHeightAboveZ.
- *
- * The two-ray model does not give a good result for short distances, due to the
- * oscillation caused by constructive and destructive combination of the two
- * rays. Instead the Friis free-space model is used for small distances. 
- *
- * The crossover distance, below which Friis is used, is calculated as follows:
- *
- * \f$ dCross = \frac{(4 * pi * Ht * Hr)}{lambda} \f$
- */
-
-class TwoRayGroundPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  TwoRayGroundPropagationLossModel ();
-  /**
-   * \param frequency (Hz)
-   * \param speed (m/s)
-   *
-   * Set the main wavelength used in the TwoRayGround model 
-   * calculation.
-   */
-  void SetLambda (double frequency, double speed);
-  /**
-   * \param lambda (m) the wavelength
-   *
-   * Set the main wavelength used in the TwoRayGround model 
-   * calculation.
-   */
-  void SetLambda (double lambda);
-  /**
-   * \param systemLoss (dimension-less)
-   *
-   * Set the system loss used by the TwoRayGround propagation model.
-   */
-  void SetSystemLoss (double systemLoss);
-  /**
-   * \param minDistance the minimum distance
-   *
-   * Below this distance, the txpower is returned
-   * unmodified as the rxpower.
-   */
-  void SetMinDistance (double minDistance);
-  /**
-   * \returns the minimum distance.
-   */
-  double GetMinDistance (void) const;
-  /**
-   * \returns the current wavelength (m)
-   */
-  double GetLambda (void) const;
-  /**
-   * \returns the current system loss (dimension-less)
-   */
-  double GetSystemLoss (void) const;
-  /**
-   * \param heightAboveZ the model antenna height above the node's Z coordinate
-   *
-   * Set the model antenna height above the node's Z coordinate
-   */
-  void SetHeightAboveZ (double heightAboveZ);
-
-private:
-  TwoRayGroundPropagationLossModel (const TwoRayGroundPropagationLossModel &o);
-  TwoRayGroundPropagationLossModel & operator = (const TwoRayGroundPropagationLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-  double DbmToW (double dbm) const;
-  double DbmFromW (double w) const;
-
-  static const double PI;
-  double m_lambda;
-  double m_systemLoss;
-  double m_minDistance;
-  double m_heightAboveZ;
-};
-
-/**
- * \brief a log distance propagation model.
- *
- * This model calculates the reception power with a so-called
- * log-distance propagation model:
- * \f$ L = L_0 + 10 n log_{10}(\frac{d}{d_0})\f$
- *
- * where:
- *  - \f$ n \f$ : the path loss distance exponent
- *  - \f$ d_0 \f$ : reference distance (m)
- *  - \f$ L_0 \f$ : path loss at reference distance (dB)
- *  - \f$ d \f$ : distance (m)
- *  - \f$ L \f$ : path loss (dB)
- *
- * When the path loss is requested at a distance smaller than
- * the reference distance, the tx power is returned.
- *
- */
-class LogDistancePropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  LogDistancePropagationLossModel ();
-
-  /**
-   * \param n the path loss exponent.
-   * Set the path loss exponent.
-   */
-  void SetPathLossExponent (double n);
-  /** 
-   * \returns the current path loss exponent.
-   */
-  double GetPathLossExponent (void) const;
-
-  void SetReference (double referenceDistance, double referenceLoss);
-  
-private:
-  LogDistancePropagationLossModel (const LogDistancePropagationLossModel &o);
-  LogDistancePropagationLossModel & operator = (const LogDistancePropagationLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-  static Ptr<PropagationLossModel> CreateDefaultReference (void);
-
-  double m_exponent;
-  double m_referenceDistance;
-  double m_referenceLoss;
-};
-
-/**
- * \brief A log distance path loss propagation model with three distance
- * fields. This model is the same as ns3::LogDistancePropagationLossModel
- * except that it has three distance fields: near, middle and far with
- * different exponents.
- *
- * Within each field the reception power is calculated using the log-distance
- * propagation equation:
- * \f[ L = L_0 + 10 \cdot n_0 log_{10}(\frac{d}{d_0})\f]
- * Each field begins where the previous ends and all together form a continuous function.
- *
- * There are three valid distance fields: near, middle, far. Actually four: the
- * first from 0 to the reference distance is invalid and returns txPowerDbm.
- *
- * \f[ \underbrace{0 \cdots\cdots}_{=0} \underbrace{d_0 \cdots\cdots}_{n_0} \underbrace{d_1 \cdots\cdots}_{n_1} \underbrace{d_2 \cdots\cdots}_{n_2} \infty \f]
- *
- * Complete formula for the path loss in dB:
- *
- * \f[\displaystyle L =
-\begin{cases}
-0 & d < d_0 \\
-L_0 + 10 \cdot n_0 \log_{10}(\frac{d}{d_0}) & d_0 \leq d < d_1 \\
-L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d}{d_1}) & d_1 \leq d < d_2 \\
-L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d_2}{d_1}) + 10 \cdot n_2 \log_{10}(\frac{d}{d_2})& d_2 \leq d
-\end{cases}\f]
- *
- * where:
- *  - \f$ L \f$ : resulting path loss (dB)
- *  - \f$ d \f$ : distance (m)
- *  - \f$ d_0, d_1, d_2 \f$ : three distance fields (m)
- *  - \f$ n_0, n_1, n_2 \f$ : path loss distance exponent for each field (unitless)
- *  - \f$ L_0 \f$ : path loss at reference distance (dB)
- *
- * When the path loss is requested at a distance smaller than the reference
- * distance \f$ d_0 \f$, the tx power (with no path loss) is returned. The
- * reference distance defaults to 1m and reference loss defaults to
- * ns3::FriisPropagationLossModel with 5.15 GHz and is thus \f$ L_0 \f$ = 46.67 dB.
- */
-
-class ThreeLogDistancePropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  ThreeLogDistancePropagationLossModel ();
-
-  // Parameters are all accessible via attributes.
-
-private:
-  ThreeLogDistancePropagationLossModel (const ThreeLogDistancePropagationLossModel& o);
-  ThreeLogDistancePropagationLossModel& operator= (const ThreeLogDistancePropagationLossModel& o);
-
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-
-  double m_distance0;
-  double m_distance1;
-  double m_distance2;
-
-  double m_exponent0;
-  double m_exponent1;
-  double m_exponent2;
-
-  double m_referenceLoss;
-};
-
-/**
- * \brief Nakagami-m fast fading propagation loss model.
- *
- * The Nakagami-m distribution is applied to the power level. The probability
- * density function is defined as
- * \f[ p(x; m, \omega) = \frac{2 m^m}{\Gamma(m) \omega^m} x^{2m - 1} e^{-\frac{m}{\omega} x^2} = 2 x \cdot p_{\text{Gamma}}(x^2, m, \frac{m}{\omega}) \f]
- * with \f$ m \f$ the fading depth parameter and \f$ \omega \f$ the average received power.
- *
- * It is implemented by either a ns3::GammaVariable or a ns3::ErlangVariable
- * random variable.
- *
- * Like in ns3::ThreeLogDistancePropagationLossModel, the m parameter is varied
- * over three distance fields:
- * \f[ \underbrace{0 \cdots\cdots}_{m_0} \underbrace{d_1 \cdots\cdots}_{m_1} \underbrace{d_2 \cdots\cdots}_{m_2} \infty \f]
- *
- * For m = 1 the Nakagami-m distribution equals the Rayleigh distribution. Thus
- * this model also implements Rayleigh distribution based fast fading.
- */
-
-class NakagamiPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-
-  NakagamiPropagationLossModel ();
-
-  // Parameters are all accessible via attributes.
-
-private:
-  NakagamiPropagationLossModel (const NakagamiPropagationLossModel& o);
-  NakagamiPropagationLossModel& operator= (const NakagamiPropagationLossModel& o);
-
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-
-  double m_distance1;
-  double m_distance2;
-
-  double m_m0;
-  double m_m1;
-  double m_m2;
-
-  ErlangVariable        m_erlangRandomVariable;
-  GammaVariable         m_gammaRandomVariable;
-};
-
-/**
- * \brief Return a constant received power level independent of the transmit 
- *  power
- *
- * The received power is constant independent of the transmit power.  The user
- * must set received power level through the Rss attribute or public 
- * SetRss() method.  Note that if this loss model is chained to other loss
- * models via SetNext() method, it can only be the first loss model in such
- * a chain, or else it will disregard the losses computed by loss models
- * that precede it in the chain. 
- */ 
-class FixedRssLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-
-  FixedRssLossModel ();
-  virtual ~FixedRssLossModel ();
-  /**
-   * \param rss (dBm) the received signal strength
-   *
-   * Set the received signal strength (RSS) in dBm.
-   */
-  void SetRss (double rss);
-
-private:
-  FixedRssLossModel (const FixedRssLossModel &o);
-  FixedRssLossModel & operator = (const FixedRssLossModel &o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-  double m_rss;
-};
-
-/**
- * \brief The propagation loss is fixed for each pair of nodes and doesn't depend on their actual positions.
- * 
- * This is supposed to be used by synthetic tests. Note that by default propagation loss is assumed to be symmetric.
- */
-class MatrixPropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  
-  MatrixPropagationLossModel ();
-  virtual ~MatrixPropagationLossModel ();
-  
-  /**
-   * \brief Set loss (in dB, positive) between pair of nodes.
-   * 
-   * \param a           Source node
-   * \param b           Destination node
-   * \param loss        a -> b path loss, positive in dB
-   * \param symmetric   If true (default), both a->b and b->a paths will be affected
-   */ 
-  void SetLoss (Ptr<Node> a, Ptr<Node> b, double loss, bool symmetric = true);
-  /// Set default loss (in dB, positive) to be used, infinity if not set
-  void SetDefaultLoss (double);
-  
-private:
-  virtual double DoCalcRxPower (double txPowerDbm,
-                               Ptr<MobilityModel> a,
-                               Ptr<MobilityModel> b) const;
-private:
-  /// default loss
-  double m_default; 
-  
-  typedef std::pair< Ptr<MobilityModel>, Ptr<MobilityModel> > MobilityPair; 
-  /// Fixed loss between pair of nodes
-  std::map<MobilityPair, double> m_loss;
-};
-
-/**
- * \brief The propagation loss depends only on the distance (range) between transmitter and receiver.
- *
- * The single MaxRange attribute (units of meters) determines path loss.
- * Receivers at or within MaxRange meters receive the transmission at the
- * transmit power level. Receivers beyond MaxRange receive at power
- * -1000 dBm (effectively zero).
-*/
-class RangePropagationLossModel : public PropagationLossModel
-{
-public:
-  static TypeId GetTypeId (void);
-  RangePropagationLossModel ();
-private:
-  RangePropagationLossModel (const RangePropagationLossModel& o);
-  RangePropagationLossModel& operator= (const RangePropagationLossModel& o);
-  virtual double DoCalcRxPower (double txPowerDbm,
-                                Ptr<MobilityModel> a,
-                                Ptr<MobilityModel> b) const;
-private:
-  double m_range;
-};
-
-} // namespace ns3
-
-#endif /* PROPAGATION_LOSS_MODEL_H */
--- a/src/common/spectrum-converter.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/spectrum-converter.h>
-#include <ns3/assert.h>
-#include <ns3/log.h>
-#include <algorithm>
-
-
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumConverter");
-
-namespace ns3 {
-
-SpectrumConverter::SpectrumConverter ()
-{
-}
-
-SpectrumConverter::SpectrumConverter (Ptr<const SpectrumModel> fromSpectrumModel, Ptr<const SpectrumModel> toSpectrumModel)
-{
-  NS_LOG_FUNCTION (this);
-  m_fromSpectrumModel = fromSpectrumModel;
-  m_toSpectrumModel = toSpectrumModel;
-
-  for (Bands::const_iterator toit = toSpectrumModel->Begin (); toit != toSpectrumModel->End (); ++toit)
-    {
-      std::vector<double> coeffs;
-
-      for (Bands::const_iterator fromit = fromSpectrumModel->Begin (); fromit != fromSpectrumModel->End (); ++fromit)
-        {
-          double c = GetCoefficient (*fromit, *toit);
-          NS_LOG_LOGIC ("(" << fromit->fl << ","  << fromit->fh << ")"
-                            << " --> " <<
-                        "(" << toit->fl << "," << toit->fh << ")"
-                            << " = " << c);
-          coeffs.push_back (c);
-        }
-
-      m_conversionMatrix.push_back (coeffs);
-    }
-
-}
-
-
-double SpectrumConverter::GetCoefficient (const BandInfo& from, const BandInfo& to) const
-{
-  NS_LOG_FUNCTION (this);
-  double coeff = std::min (from.fh, to.fh) - std::max (from.fl, to.fl);
-  coeff = std::max (0.0, coeff);
-  coeff = std::min (1.0, coeff / (to.fh - to.fl));
-  return coeff;
-}
-
-
-
-Ptr<SpectrumValue>
-SpectrumConverter::Convert (Ptr<const SpectrumValue> fvvf) const
-{
-  NS_ASSERT ( *(fvvf->GetSpectrumModel ()) == *m_fromSpectrumModel);
-
-  Ptr<SpectrumValue> tvvf = Create<SpectrumValue> (m_toSpectrumModel);
-
-  Values::iterator tvit = tvvf->ValuesBegin ();
-
-
-  for (std::vector<std::vector<double> >::const_iterator toit = m_conversionMatrix.begin ();
-       toit != m_conversionMatrix.end ();
-       ++toit)
-    {
-      NS_ASSERT (tvit != tvvf->ValuesEnd ());
-      Values::const_iterator fvit = fvvf->ConstValuesBegin ();
-
-      double sum = 0;
-      for (std::vector<double>::const_iterator fromit = toit->begin ();
-           fromit != toit->end ();
-           ++fromit)
-        {
-          NS_ASSERT (fvit != fvvf->ConstValuesEnd ());
-          sum += (*fvit) * (*fromit);
-          ++fvit;
-        }
-      *tvit = sum;
-      ++tvit;
-    }
-
-  return tvvf;
-}
-
-
-
-
-
-} // namespace ns3
--- a/src/common/spectrum-converter.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_CONVERTER_H
-#define SPECTRUM_CONVERTER_H
-
-#include <ns3/spectrum-value.h>
-
-
-namespace ns3 {
-
-/**
- * Class which implements a converter between SpectrumValue which are
- * defined over different SpectrumModel. In more formal terms, this class
- * allows conversion between different function spaces. In practical
- * terms, this allows you to mix different spectrum representation
- * within the same channel, such as a device using a coarse spectrum
- * representation (e.g., one frequency for each IEEE 802.11 channel)
- * and devices using a finer representation (e.g., one frequency for
- * each OFDM subcarrier).
- *
- */
-class SpectrumConverter : public SimpleRefCount<SpectrumConverter>
-{
-public:
-  /**
-   * Create a SpectrumConverter class that will be able to convert ValueVsFreq
-   * instances defined over one SpectrumModel to corresponding ValueVsFreq
-   * instances defined over a diffent SpectrumModel
-   *
-   * @param fromSpectrumModel the SpectrumModel to convert from
-   * @param toSpectrumModel the SpectrumModel to convert to
-   */
-  SpectrumConverter (Ptr<const SpectrumModel> fromSpectrumModel, Ptr<const SpectrumModel> toSpectrumModel);
-
-  SpectrumConverter ();
-  
-
-
-  /**
-   * Convert a particular ValueVsFreq instance to
-   *
-   * @param vvf the ValueVsFreq instance to be converted
-   *
-   * @return the converted version of the provided ValueVsFreq
-   */
-  Ptr<SpectrumValue> Convert (Ptr<const SpectrumValue> vvf) const;
-
-
-private:
-  /**
-   * Calculate the coefficient for value conversion between elements
-   *
-   * @param from BandInfo to convert from
-   * @param to  BandInfo to convert to
-   *
-   * @return the fraction of the value of the "from" BandInfos that is
-   * mapped to the "to" BandInfo
-   */
-  double GetCoefficient (const BandInfo& from, const BandInfo& to) const;
-
-  std::vector<std::vector<double> > m_conversionMatrix; // /< matrix of conversion coefficients
-  Ptr<const SpectrumModel> m_fromSpectrumModel;  // /<  the SpectrumModel this SpectrumConverter instance can convert from
-  Ptr<const SpectrumModel> m_toSpectrumModel;    // /<  the SpectrumModel this SpectrumConverter instance can convert to
-
-};
-
-
-
-} // namespace ns3
-
-
-
-#endif /*  SPECTRUM_CONVERTER_H */
-
-
--- a/src/common/spectrum-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil;  -*- */
-
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/spectrum-model.h>
-#include <math.h>
-#include <ns3/log.h>
-#include <ns3/assert.h>
-
-
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumModel");
-
-
-
-namespace ns3 {
-
-
-bool operator== (const SpectrumModel& lhs, const SpectrumModel& rhs)
-{
-  return (lhs.m_uid == rhs.m_uid);
-}
-
-SpectrumModelUid_t SpectrumModel::m_uidCount = 0;
-
-SpectrumModel::SpectrumModel (std::vector<double> centerFreqs)
-{
-  NS_ASSERT (centerFreqs.size () > 1);
-  m_uid = ++m_uidCount;
-
-  for (std::vector<double>::const_iterator it = centerFreqs.begin ();
-       it != centerFreqs.end ();
-       ++it)
-    {
-      BandInfo e;
-      e.fc = *it;
-      if (it ==  centerFreqs.begin ())
-        {
-          double delta = ((*(it + 1)) - (*it)) / 2;
-          e.fl =  *it - delta;
-          e.fh =  *it + delta;
-        }
-      else if (it == centerFreqs.end () - 1 )
-        {
-          double delta = ((*it) - (*(it - 1))) / 2;
-          e.fl  =  *it - delta;
-          e.fh =  *it + delta;
-        }
-      else
-        {
-          e.fl  = ((*it) + (*(it - 1))) / 2;
-          e.fh = ((*(it + 1)) + (*it)) / 2;
-        }
-      m_bands.push_back (e);
-    }
-}
-
-SpectrumModel::SpectrumModel (Bands bands)
-{
-  m_uid = ++m_uidCount;
-  NS_LOG_INFO ("creating new SpectrumModel, m_uid=" << m_uid);
-  m_bands = bands;
-}
-
-Bands::const_iterator
-SpectrumModel::Begin () const
-{
-  return m_bands.begin ();
-}
-
-Bands::const_iterator
-SpectrumModel::End () const
-{
-  return m_bands.end ();
-}
-
-size_t
-SpectrumModel::GetNumBands () const
-{
-  return m_bands.size ();
-}
-
-SpectrumModelUid_t
-SpectrumModel::GetUid () const
-{
-  return m_uid;
-}
-
-
-
-} // namespace ns3
--- a/src/common/spectrum-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_MODEL_H
-#define SPECTRUM_MODEL_H
-
-#include <ns3/simple-ref-count.h>
-#include <vector>
-
-namespace ns3 {
-
-
-
-/**
- * The building block of a SpectrumModel. This struct models
- * a frequency band defined by the frequency interval [fl, fc] and
- * with center frequency fc. Typically, the center frequency will be
- * used for stuff such as propagation modeling, while the interval
- * boundaries will be used for bandwidth calculation and for
- * conversion between different SpectrumRepresentations.
- *
- */
-struct BandInfo
-{
-  double fl; ///< lower limit of subband
-  double fc; ///< center frequency
-  double fh; ///< upper limit of subband
-};
-
-
-typedef std::vector<BandInfo> Bands;
-typedef uint32_t SpectrumModelUid_t;
-
-/**
- * Set of frequency values implementing the domain of the functions in
- * the Function Space defined by SpectrumValue. Frequency values are in
- * Hz. It is intended that frequency values are non-negative, though
- * this is not enforced.
- *
- */
-class SpectrumModel : public SimpleRefCount<SpectrumModel>
-{
-public:
-  friend bool operator== (const SpectrumModel& lhs, const SpectrumModel& rhs);
-
-  /**
-   * This constructs a SpectrumModel based on a given set of frequencies,
-   * which is assumed to be sorted by increasing frequency. The lower
-   * (resp. upper) frequency band limit is determined as the mean value
-   * between the center frequency of the considered band and the
-   * center frequency of the adjacent lower (resp. upper) band.
-   *
-   * @param centerFreqs the vector of center frequencies.
-   *
-   * @return
-   */
-  SpectrumModel (std::vector<double> centerFreqs);
-
-
-  /**
-   * This construct a SpectrumModel based on the explicit values of
-   * center frequencies and boundaries of each subband.
-   *
-   * @param bands
-   *
-   * @return
-   */
-  SpectrumModel (Bands bands);
-
-  /**
-   *
-   * @return the number of frequencies in this SpectrumModel
-   */
-  size_t GetNumBands () const;
-
-
-  /**
-   *
-   * @return the unique id of this SpectrumModel
-   */
-  SpectrumModelUid_t GetUid () const;
-
-
-  Bands::const_iterator Begin () const;
-  Bands::const_iterator End () const;
-
-private:
-  Bands m_bands;         ///< actual definition of frequency bands
-                         /// within this SpectrumModel
-  SpectrumModelUid_t m_uid;        ///< unique id for a given set of frequencies
-  static SpectrumModelUid_t m_uidCount;    ///< counter to assign m_uids
-};
-
-
-} // namespace ns3
-
-#endif /* SPECTRUM_MODEL_H */
--- a/src/common/spectrum-propagation-loss-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include "spectrum-propagation-loss-model.h"
-#include <ns3/log.h>
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumPropagationLossModel");
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (SpectrumPropagationLossModel);
-
-SpectrumPropagationLossModel::SpectrumPropagationLossModel ()
-  : m_next (0)
-{
-}
-
-SpectrumPropagationLossModel::~SpectrumPropagationLossModel ()
-{
-}
-
-void
-SpectrumPropagationLossModel::DoDispose ()
-{
-  m_next = 0;
-}
-
-TypeId
-SpectrumPropagationLossModel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::SpectrumPropagationLossModel")
-    .SetParent<Object> ()
-  ;
-  return tid;
-}
-
-
-void SpectrumPropagationLossModel::SetNext (Ptr<SpectrumPropagationLossModel> next)
-{
-  m_next = next;
-}
-
-
-Ptr<SpectrumValue>
-SpectrumPropagationLossModel::CalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
-                                                          Ptr<const MobilityModel> a,
-                                                          Ptr<const MobilityModel> b) const
-{
-  Ptr<SpectrumValue> rxPsd = DoCalcRxPowerSpectralDensity (txPsd, a, b);
-  if (m_next != 0)
-    {
-      rxPsd = m_next->DoCalcRxPowerSpectralDensity (rxPsd, a, b);
-    }
-  return rxPsd;
-}
-
-} // namespace ns3
--- a/src/common/spectrum-propagation-loss-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_PROPAGATION_LOSS_MODEL_H
-#define SPECTRUM_PROPAGATION_LOSS_MODEL_H
-
-
-#include <ns3/object.h>
-#include <ns3/mobility-model.h>
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-
-
-/**
- * \brief spectrum-aware propagation loss model
- *
- * Interface for propagation loss models to be adopted when
- * transmissions are modeled with a power spectral density by means of
- * the SpectrumValue class.
- *
- */
-class SpectrumPropagationLossModel : public Object
-{
-public:
-  SpectrumPropagationLossModel ();
-  virtual ~SpectrumPropagationLossModel ();
-
-  static TypeId GetTypeId ();
-
-
-  /**
-   * used to chain various instances of SpectrumPropagationLossModel
-   *
-   * @param next
-   */
-  void SetNext (Ptr<SpectrumPropagationLossModel> next);
-
-  /**
-   * This method is to be called to calculate
-   *
-   * @param txPsd the SpectrumValue representing the power spectral
-   * density of the transmission. Watt units are to be used for radio
-   * communications, and Pascal units for acoustic communications
-   * (e.g. underwater).
-   *
-   * @param a sender mobility
-   * @param b receiver mobility
-   *
-   * @return set of values vs frequency representing the received
-   * power in the same units used for the txPower parameter.
-   */
-  Ptr<SpectrumValue> CalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
-                                                 Ptr<const MobilityModel> a,
-                                                 Ptr<const MobilityModel> b) const;
-
-protected:
-  virtual void DoDispose ();
-  
-
-private:
-  /**
-   *
-   *
-   * @param txPsd set of values vs frequency representing the
-   * transmission power. See SpectrumChannel for details.
-   * @param a sender mobility
-   * @param b receiver mobility
-   *
-   * @return set of values vs frequency representing the received
-   * power in the same units used for the txPower parameter.
-   */
-  virtual Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
-                                                           Ptr<const MobilityModel> a,
-                                                           Ptr<const MobilityModel> b) const = 0;
-
-  Ptr<SpectrumPropagationLossModel> m_next;
-};
-
-
-
-
-
-
-} // namespace ns3
-
-#endif /* SPECTRUM_PROPAGATION_LOSS_MODEL_H */
--- a/src/common/spectrum-type.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "spectrum-type.h"
-#include <ns3/assert.h>
-
-
-namespace ns3 {
-
-
-
-std::vector<std::string> SpectrumTypeFactory::m_names;
-
-
-SpectrumType
-SpectrumTypeFactory::Create (std::string name)
-{
-  std::vector<std::string>::iterator it;
-  for (it = m_names.begin (); it != m_names.end (); ++it)
-    {
-      NS_ASSERT_MSG (name != *it, "name \"" << name << "\" already registered!");
-    }
-  m_names.push_back (name);
-  return SpectrumType (m_names.size () - 1);
-}
-
-
-
-std::string
-SpectrumTypeFactory::GetNameByUid (uint32_t uid)
-{
-  return m_names.at (uid);
-}
-
-
-
-SpectrumType::SpectrumType (uint32_t uid)
-  : m_uid (uid)
-{
-}
-
-uint32_t
-SpectrumType::GetUid () const
-{
-  return m_uid;
-}
-
-
-std::string
-SpectrumType::GetName () const
-{
-  return SpectrumTypeFactory::GetNameByUid (m_uid);
-}
-
-
-bool
-operator== (const SpectrumType& lhs, const SpectrumType& rhs)
-{
-  return (lhs.GetUid () == rhs.GetUid ());
-}
-
-
-bool
-operator!= (const SpectrumType& lhs, const SpectrumType& rhs)
-{
-  return (lhs.GetUid () != rhs.GetUid ());
-}
-
-std::ostream&
-operator<<  (std::ostream& os, const SpectrumType& rhs)
-{
-  os << rhs.GetName ();
-  return os;
-}
-
-
-} // namespace ns3
-
--- a/src/common/spectrum-type.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_TYPE_H
-#define SPECTRUM_TYPE_H
-
-#include <ns3/log.h>
-#include <iostream>
-#include <vector>
-#include <string>
-
-
-namespace ns3 {
-
-
-/**
- * This class represent a type of signal that can be transmitted by
- * SpectrumPhy instances over a SpectrumChannel. By means of this
- * class a SpectrumPhy is able to recognize which type of signals it
- * is able to decode (i.e., receive) and which are to be considered
- * only as a source of interference. Note that this distinction of
- * signal types is an abstraction which is introduced only for
- * simulation purposes: in the real world a device needs to infer
- * whether a signal is of a known type by examining at properties of the
- * signal, such as preamble, CRC fields, etc.
- *
- */
-class SpectrumType
-{
-  friend class SpectrumTypeFactory;
-
-public:
-  uint32_t GetUid () const;
-  std::string GetName () const;
-
-private:
-  SpectrumType (uint32_t m_uid);
-  uint32_t m_uid;
-};
-
-
-bool operator== (const SpectrumType& lhs, const SpectrumType& rhs);
-bool operator!= (const SpectrumType& lhs, const SpectrumType& rhs);
-std::ostream& operator<< (std::ostream& os, const SpectrumType& rhs);
-
-
-
-class SpectrumTypeFactory
-{
-
-public:
-  static SpectrumType Create (std::string name);
-  static std::string GetNameByUid (uint32_t uid);
-
-private:
-  static std::vector<std::string> m_names;
-};
-
-
-} // namespace ns3
-
-
-#endif /*  SPECTRUM_TYPE_H */
--- a/src/common/spectrum-value-test.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/object.h>
-#include <ns3/spectrum-value.h>
-#include <ns3/spectrum-converter.h>
-#include <ns3/log.h>
-#include <ns3/test.h>
-#include <iostream>
-#include <math.h>
-
-// NS_LOG_COMPONENT_DEFINE ("SpectrumValueTest");
-
-namespace ns3 {
-
-
-#define TOLERANCE 1e-6
-
-class SpectrumValueTestCase : public TestCase
-{
-public:
-  SpectrumValueTestCase (SpectrumValue a, SpectrumValue b, std::string name);
-  virtual ~SpectrumValueTestCase ();
-  virtual void DoRun (void);
-
-private:
-  bool MoreOrLessEqual (SpectrumValue x, SpectrumValue y);
-  SpectrumValue m_a;
-  SpectrumValue m_b;
-};
-
-
-
-SpectrumValueTestCase::SpectrumValueTestCase (SpectrumValue a, SpectrumValue b, std::string name)
-  : TestCase (name),
-    m_a (a),
-    m_b (b)
-{
-}
-
-SpectrumValueTestCase::~SpectrumValueTestCase ()
-{
-}
-
-
-bool
-SpectrumValueTestCase::MoreOrLessEqual (SpectrumValue x, SpectrumValue y)
-{
-  SpectrumValue z = x - y;
-  return (Norm (z) < TOLERANCE);
-}
-
-void
-SpectrumValueTestCase::DoRun (void)
-{
-  bool error = !MoreOrLessEqual (m_a, m_b);
-  std::cerr << m_a << std::endl
-            << m_b << std::endl;
-  if (error)
-    {
-      std::ostringstream actualStream;
-      actualStream << m_a;
-      std::ostringstream limitStream;
-      limitStream << m_b;
-      UpdateErrorStatus (error);
-      ReportTestFailure (std::string ("vector elements equal"),
-                         actualStream.str (),
-                         limitStream.str (),
-                         std::string ("no message"),
-                         __FILE__, __LINE__);
-    }
-}
-
-
-
-
-
-
-
-
-class SpectrumValueTestSuite : public TestSuite
-{
-public:
-  SpectrumValueTestSuite ();
-};
-
-SpectrumValueTestSuite::SpectrumValueTestSuite ()
-  : TestSuite ("spectrum-value", UNIT)
-{
-
-  // NS_LOG_INFO("creating SpectrumValueTestSuite");
-
-
-  std::vector<double> freqs;
-
-  for (int i = 1; i <= 5; i++)
-    {
-      freqs.push_back (i);
-    }
-
-  Ptr<SpectrumModel> f = Create<SpectrumModel> (freqs);
-
-  SpectrumValue v1 (f), v2 (f), v3 (f), v4 (f), v5 (f), v6 (f), v7 (f), v8 (f), v9 (f), v10 (f);
-  double nv1, nv2;
-
-  double doubleValue;
-
-
-  doubleValue =  1.12345600000000;
-
-  v1[0] =  0.700539792840;
-  v1[1] = -0.554277600423;
-  v1[2] =  0.750309319469;
-  v1[3] = -0.892299213192;
-  v1[4] =  0.987045234885;
-
-  v2[0] =  0.870441628737;
-  v2[1] =  0.271419263880;
-  v2[2] =  0.451557288312;
-  v2[3] =  0.968992859395;
-  v2[4] = -0.929186654705;
-
-  v3[0] =  1.570981421577;
-  v3[1] = -0.282858336543;
-  v3[2] =  1.201866607781;
-  v3[3] =  0.076693646203;
-  v3[4] =  0.057858580180;
-
-  v4[0] = -0.169901835897;
-  v4[1] = -0.825696864302;
-  v4[2] =  0.298752031158;
-  v4[3] = -1.861292072588;
-  v4[4] =  1.916231889590;
-
-  v5[0] =  0.609778998275;
-  v5[1] = -0.150441618292;
-  v5[2] =  0.338807641695;
-  v5[3] = -0.864631566028;
-  v5[4] = -0.917149259846;
-
-  v6[0] =  0.804809615846;
-  v6[1] = -2.042145397125;
-  v6[2] =  1.661603829438;
-  v6[3] = -0.920852207053;
-  v6[4] = -1.062267984465;
-
-  v7[0] =  1.823995792840;
-  v7[1] =  0.569178399577;
-  v7[2] =  1.873765319469;
-  v7[3] =  0.231156786808;
-  v7[4] =  2.110501234885;
-
-  v8[0] = -0.422916207160;
-  v8[1] = -1.677733600423;
-  v8[2] = -0.373146680531;
-  v8[3] = -2.015755213192;
-  v8[4] = -0.136410765115;
-
-  v9[0] =  0.787025633505;
-  v9[1] = -0.622706495860;
-  v9[2] =  0.842939506814;
-  v9[3] = -1.002458904856;
-  v9[4] =  1.108901891403;
-
-  v10[0] =  0.623557836569;
-  v10[1] = -0.493368320987;
-  v10[2] =  0.667858215604;
-  v10[3] = -0.794244913190;
-  v10[4] =  0.878579343459;
-
-  nv1 =  1.76957619675970;
-  nv2 =  1.68451062071783;
-
-
-
-
-  // std::cerr.precision(15);
-
-  // std::cerr<< nv1 << " "<<   v1.Norm() << std::endl;
-
-  SpectrumValue tv3 (f), tv4 (f), tv5 (f), tv6 (f);
-
-  tv3 = v1 + v2;
-  tv4 = v1 - v2;
-  tv5 = v1 * v2;
-  tv6 = v1 / v2;
-
-
-  AddTestCase (new SpectrumValueTestCase (tv3, v3, " tv3 = v1 + v2"));
-  AddTestCase (new SpectrumValueTestCase (tv4, v4, " tv4 = v1 - v2"));
-  AddTestCase (new SpectrumValueTestCase (tv5, v5, " tv5 = v1 * v2"));
-  AddTestCase (new SpectrumValueTestCase (tv6, v6, " tv6 = v1 / v2"));
-
-  // std::cerr << v6 << std::endl;
-  // std::cerr << tv6 << std::endl;
-
-
-  tv3 = v1;
-  tv4 = v1;
-  tv5 = v1;
-  tv6 = v1;
-
-  tv3 += v2;
-  tv4 -= v2;
-  tv5 *= v2;
-  tv6 /= v2;
-
-  AddTestCase (new SpectrumValueTestCase (tv3, v3, "tv3 += v2"));
-  AddTestCase (new SpectrumValueTestCase (tv4, v4, "tv4 -= v2"));
-  AddTestCase (new SpectrumValueTestCase (tv5, v5, "tv5 *= v2"));
-  AddTestCase (new SpectrumValueTestCase (tv6, v6, "tv6 /= v2"));
-
-  SpectrumValue tv7a (f), tv8a (f), tv9a (f), tv10a (f);
-  tv7a = v1 + doubleValue;
-  tv8a = v1 - doubleValue;
-  tv9a = v1 * doubleValue;
-  tv10a = v1 / doubleValue;
-  AddTestCase (new SpectrumValueTestCase (tv7a, v7, "tv7a = v1 + doubleValue"));
-  AddTestCase (new SpectrumValueTestCase (tv8a, v8, "tv8a = v1 - doubleValue"));
-  AddTestCase (new SpectrumValueTestCase (tv9a, v9, "tv9a = v1 * doubleValue"));
-  AddTestCase (new SpectrumValueTestCase (tv10a, v10, "tv10a = v1 / doubleValue"));
-
-  SpectrumValue tv7b (f), tv8b (f), tv9b (f), tv10b (f);
-  tv7b =  doubleValue + v1;
-  tv8b =  doubleValue - v1;
-  tv9b =  doubleValue * v1;
-  tv10b = doubleValue / v1;
-  AddTestCase (new SpectrumValueTestCase (tv7b, v7, "tv7b =  doubleValue + v1"));
-  AddTestCase (new SpectrumValueTestCase (tv8b, v8, "tv8b =  doubleValue - v1"));
-  AddTestCase (new SpectrumValueTestCase (tv9b, v9, "tv9b =  doubleValue * v1"));
-  AddTestCase (new SpectrumValueTestCase (tv10b, v10, "tv10b = doubleValue / v1"));
-
-
-
-
-
-  SpectrumValue v1ls3 (f), v1rs3 (f);
-  SpectrumValue tv1ls3 (f), tv1rs3 (f);
-
-  v1ls3[0] = v1[3];
-  v1ls3[1] = v1[4];
-  tv1ls3 = v1 << 3;
-  AddTestCase (new SpectrumValueTestCase (tv1ls3, v1ls3, "tv1ls3 = v1 << 3"));
-
-
-  v1rs3[3] = v1[0];
-  v1rs3[4] = v1[1];
-  tv1rs3 = v1 >> 3;
-  AddTestCase (new SpectrumValueTestCase (tv1rs3, v1rs3, "tv1rs3 = v1 >> 3"));
-
-
-}
-
-
-
-
-
-
-
-class SpectrumConverterTestSuite : public TestSuite
-{
-public:
-  SpectrumConverterTestSuite ();
-};
-
-SpectrumConverterTestSuite::SpectrumConverterTestSuite ()
-  : TestSuite ("spectrum-converter", UNIT)
-{
-  double f;
-
-
-  std::vector<double> f1;
-  for (f = 3; f <= 7; f += 2)
-    {
-      f1.push_back (f);
-    }
-  Ptr<SpectrumModel> sof1 = Create<SpectrumModel> (f1);
-
-
-
-  std::vector<double> f2;
-  for (f = 2; f <= 8; f += 1)
-    {
-      f2.push_back (f);
-    }
-  Ptr<SpectrumModel> sof2 = Create<SpectrumModel> (f2);
-
-
-
-  Ptr<SpectrumValue> res;
-
-
-  Ptr<SpectrumValue> v1 = Create<SpectrumValue> (sof1);
-  *v1 = 4;
-  SpectrumConverter c12 (sof1, sof2);
-  res = c12.Convert (v1);
-  SpectrumValue t12 (sof2);
-  t12 = 4;
-  t12[0] = 2;
-  t12[6] = 2;
-//   NS_LOG_LOGIC(*v1);
-//   NS_LOG_LOGIC(t12);
-//   NS_LOG_LOGIC(*res);
-
-  AddTestCase (new SpectrumValueTestCase (t12, *res, ""));
-  // TEST_ASSERT(MoreOrLessEqual(t12, *res));
-
-  Ptr<SpectrumValue> v2a = Create<SpectrumValue> (sof2);
-  *v2a = -2;
-  SpectrumConverter c21 (sof2, sof1);
-  res = c21.Convert (v2a);
-  SpectrumValue t21a (sof1);
-  t21a = -2;
-//   NS_LOG_LOGIC(*v2a);
-//   NS_LOG_LOGIC(t21a);
-//   NS_LOG_LOGIC(*res);
-  AddTestCase (new SpectrumValueTestCase (t21a, *res, ""));
-  // TEST_ASSERT(MoreOrLessEqual(t21a, *res));
-
-  Ptr<SpectrumValue> v2b = Create<SpectrumValue> (sof2);
-  (*v2b)[0] = 3;
-  (*v2b)[1] = 5;
-  (*v2b)[2] = 1;
-  (*v2b)[3] = 2;
-  (*v2b)[4] = 4;
-  (*v2b)[5] = 6;
-  (*v2b)[6] = 3;
-  res = c21.Convert (v2b);
-  SpectrumValue t21b (sof1);
-  t21b[0] = 3 * 0.25 + 5 * 0.5 + 1 * 0.25;
-  t21b[1] = 1 * 0.25 + 2 * 0.5 + 4 * 0.25;
-  t21b[2] = 4 * 0.25 + 6 * 0.5 + 3 * 0.25;
-//   NS_LOG_LOGIC(*v2b);
-//   NS_LOG_LOGIC(t21b);
-//   NS_LOG_LOGIC(*res);
-  AddTestCase (new SpectrumValueTestCase (t21b, *res, ""));
-
-
-}
-
-
-
-
-
-
-// static instance of test suites
-static SpectrumValueTestSuite g_SpectrumValueTestSuite;
-static SpectrumConverterTestSuite g_SpectrumConverterTestSuite;
-
-
-
-} // namespace ns3
--- a/src/common/spectrum-value.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,673 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil;  -*- */
-
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/spectrum-value.h>
-#include <math.h>
-#include <ns3/log.h>
-
-
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumValue");
-
-
-namespace ns3 {
-
-
-SpectrumValue::SpectrumValue ()
-{ 
-}
-
-SpectrumValue::SpectrumValue (Ptr<const SpectrumModel> sof)
-  : m_spectrumModel (sof),
-    m_values (sof->GetNumBands ())
-{
-
-}
-
-double&
-SpectrumValue:: operator[] (size_t index)
-{
-  return m_values.at (index);
-}
-
-
-SpectrumModelUid_t
-SpectrumValue::GetSpectrumModelUid () const
-{
-  return m_spectrumModel->GetUid ();
-}
-
-
-Ptr<const SpectrumModel>
-SpectrumValue::GetSpectrumModel () const
-{
-  return m_spectrumModel;
-}
-
-
-Values::const_iterator
-SpectrumValue::ConstValuesBegin () const
-{
-  return m_values.begin ();
-}
-
-Values::const_iterator
-SpectrumValue::ConstValuesEnd () const
-{
-  return m_values.end ();
-}
-
-
-Values::iterator
-SpectrumValue::ValuesBegin ()
-{
-  return m_values.begin ();
-}
-
-Values::iterator
-SpectrumValue::ValuesEnd ()
-{
-  return m_values.end ();
-}
-
-Bands::const_iterator
-SpectrumValue::ConstBandsBegin () const
-{
-  return m_spectrumModel->Begin ();
-}
-
-Bands::const_iterator
-SpectrumValue::ConstBandsEnd () const
-{
-  return m_spectrumModel->End ();
-}
-
-
-void
-SpectrumValue::Add (const SpectrumValue& x)
-{
-  Values::iterator it1 = m_values.begin ();
-  Values::const_iterator it2 = x.m_values.begin ();
-
-  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
-
-  while (it1 != m_values.end ())
-    {
-      NS_ASSERT ( it2 != x.m_values.end ());
-      *it1 += *it2;
-      ++it1;
-      ++it2;
-    }
-}
-
-
-void
-SpectrumValue::Add (double s)
-{
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 += s;
-      ++it1;
-    }
-}
-
-
-
-void
-SpectrumValue::Subtract (const SpectrumValue& x)
-{
-  Values::iterator it1 = m_values.begin ();
-  Values::const_iterator it2 = x.m_values.begin ();
-
-  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
-
-  while (it1 != m_values.end ())
-    {
-      NS_ASSERT ( it2 != x.m_values.end ());
-      *it1 -= *it2;
-      ++it1;
-      ++it2;
-    }
-}
-
-
-void
-SpectrumValue::Subtract (double s)
-{
-  Add (-s);
-}
-
-
-
-void
-SpectrumValue::Multiply (const SpectrumValue& x)
-{
-  Values::iterator it1 = m_values.begin ();
-  Values::const_iterator it2 = x.m_values.begin ();
-
-  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
-
-  while (it1 != m_values.end ())
-    {
-      NS_ASSERT ( it2 != x.m_values.end ());
-      *it1 *= *it2;
-      ++it1;
-      ++it2;
-    }
-}
-
-
-void
-SpectrumValue::Multiply (double s)
-{
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 *= s;
-      ++it1;
-    }
-}
-
-
-
-
-void
-SpectrumValue::Divide (const SpectrumValue& x)
-{
-  Values::iterator it1 = m_values.begin ();
-  Values::const_iterator it2 = x.m_values.begin ();
-
-  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
-
-  while (it1 != m_values.end ())
-    {
-      NS_ASSERT ( it2 != x.m_values.end ());
-      *it1 /= *it2;
-      ++it1;
-      ++it2;
-    }
-}
-
-
-void
-SpectrumValue::Divide (double s)
-{
-  NS_LOG_FUNCTION (this << s);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 /= s;
-      ++it1;
-    }
-}
-
-
-
-
-void
-SpectrumValue::ChangeSign ()
-{
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = -(*it1);
-      ++it1;
-    }
-}
-
-
-void
-SpectrumValue::ShiftLeft (int n)
-{
-  int i = 0;
-  while (i < (int) m_values.size () - n)
-    {
-      m_values.at (i) = m_values.at (i + n);
-      i++;
-    }
-  while (i < (int)m_values.size ())
-    {
-      m_values.at (i) = 0;
-      i++;
-    }
-}
-
-
-void
-SpectrumValue::ShiftRight (int n)
-{
-  int i = m_values.size () - 1;
-  while (i - n >= 0)
-    {
-      m_values.at (i) = m_values.at (i - n);
-      i = i - 1;
-    }
-  while (i >= 0)
-    {
-      m_values.at (i) = 0;
-      --i;
-    }
-}
-
-
-
-void
-SpectrumValue::Pow (double exp)
-{
-  NS_LOG_FUNCTION (this << exp);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = pow (*it1, exp);
-      ++it1;
-    }
-}
-
-
-void
-SpectrumValue::Exp (double base)
-{
-  NS_LOG_FUNCTION (this << base);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = pow (base, *it1);
-      ++it1;
-    }
-}
-
-
-void
-SpectrumValue::Log10 ()
-{
-  NS_LOG_FUNCTION (this);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = log10 (*it1);
-      ++it1;
-    }
-}
-
-void
-SpectrumValue::Log2 ()
-{
-  NS_LOG_FUNCTION (this);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = log2 (*it1);
-      ++it1;
-    }
-}
-
-
-void
-SpectrumValue::Log ()
-{
-  NS_LOG_FUNCTION (this);
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = log (*it1);
-      ++it1;
-    }
-}
-
-double
-Norm (const SpectrumValue& x)
-{
-  double s = 0;
-  Values::const_iterator it1 = x.ConstValuesBegin ();
-  while (it1 != x.ConstValuesEnd ())
-    {
-      s += (*it1) * (*it1);
-      ++it1;
-    }
-  return sqrt (s);
-}
-
-
-double
-Sum (const SpectrumValue& x)
-{
-  double s = 0;
-  Values::const_iterator it1 = x.ConstValuesBegin ();
-  while (it1 != x.ConstValuesEnd ())
-    {
-      s += (*it1);
-      ++it1;
-    }
-  return s;
-}
-
-
-
-double
-Prod (const SpectrumValue& x)
-{
-  double s = 0;
-  Values::const_iterator it1 = x.ConstValuesBegin ();
-  while (it1 != x.ConstValuesEnd ())
-    {
-      s *= (*it1);
-      ++it1;
-    }
-  return s;
-}
-
-
-Ptr<SpectrumValue>
-SpectrumValue::Copy () const
-{
-  Ptr<SpectrumValue> p = Create<SpectrumValue> (m_spectrumModel);
-  *p = *this;
-  return p;
-
-  //  return Copy<SpectrumValue> (*this)
-}
-
-
-std::ostream&
-operator << (std::ostream& os, const SpectrumValue& pvf)
-{
-  Values::const_iterator it1 = pvf.ConstValuesBegin ();
-  while (it1 != pvf.ConstValuesEnd ())
-    {
-      os << *it1 << " " ;
-      ++it1;
-    }
-  os << std::endl;
-  return os;
-}
-
-
-
-SpectrumValue
-operator+ (const SpectrumValue& lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = lhs;
-  res.Add (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator+ (const SpectrumValue& lhs, double rhs)
-{
-  SpectrumValue res = lhs;
-  res.Add (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator+ (double lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.Add (lhs);
-  return res;
-}
-
-
-SpectrumValue
-operator- (const SpectrumValue& lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.ChangeSign ();
-  res.Add (lhs);
-  return res;
-}
-
-
-
-SpectrumValue
-operator- (const SpectrumValue& lhs, double rhs)
-{
-  SpectrumValue res = lhs;
-  res.Subtract (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator- (double lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.Subtract (lhs);
-  return res;
-}
-
-SpectrumValue
-operator* (const SpectrumValue& lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = lhs;
-  res.Multiply (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator* (const SpectrumValue& lhs, double rhs)
-{
-  SpectrumValue res = lhs;
-  res.Multiply (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator* (double lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.Multiply (lhs);
-  return res;
-}
-
-
-SpectrumValue
-operator/ (const SpectrumValue& lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = lhs;
-  res.Divide (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator/ (const SpectrumValue& lhs, double rhs)
-{
-  SpectrumValue res = lhs;
-  res.Divide (rhs);
-  return res;
-}
-
-
-SpectrumValue
-operator/ (double lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.Divide (lhs);
-  return res;
-}
-
-
-SpectrumValue
-operator+ (const SpectrumValue& rhs)
-{
-  return rhs;
-}
-
-SpectrumValue
-operator- (const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.ChangeSign ();
-  return res;
-}
-
-
-SpectrumValue
-Pow (double lhs, const SpectrumValue& rhs)
-{
-  SpectrumValue res = rhs;
-  res.Exp (lhs);
-  return res;
-}
-
-
-SpectrumValue
-Pow (const SpectrumValue& lhs, double rhs)
-{
-  SpectrumValue res = lhs;
-  res.Pow (rhs);
-  return res;
-}
-
-
-SpectrumValue
-Log10 (const SpectrumValue& arg)
-{
-  SpectrumValue res = arg;
-  res.Log10 ();
-  return res;
-}
-
-SpectrumValue
-Log2 (const SpectrumValue& arg)
-{
-  SpectrumValue res = arg;
-  res.Log2 ();
-  return res;
-}
-
-SpectrumValue
-Log (const SpectrumValue& arg)
-{
-  SpectrumValue res = arg;
-  res.Log ();
-  return res;
-}
-
-SpectrumValue&
-SpectrumValue:: operator+= (const SpectrumValue& rhs)
-{
-  Add (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator-= (const SpectrumValue& rhs)
-{
-  Subtract (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator*= (const SpectrumValue& rhs)
-{
-  Multiply (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator/= (const SpectrumValue& rhs)
-{
-  Divide (rhs);
-  return *this;
-}
-
-
-SpectrumValue&
-SpectrumValue:: operator+= (double rhs)
-{
-  Add (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator-= (double rhs)
-{
-  Subtract (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator*= (double rhs)
-{
-  Multiply (rhs);
-  return *this;
-}
-
-SpectrumValue&
-SpectrumValue:: operator/= (double rhs)
-{
-  Divide (rhs);
-  return *this;
-}
-
-
-SpectrumValue&
-SpectrumValue:: operator= (double rhs)
-{
-  Values::iterator it1 = m_values.begin ();
-
-  while (it1 != m_values.end ())
-    {
-      *it1 = rhs;
-      ++it1;
-    }
-  return *this;
-}
-
-
-
-SpectrumValue
-SpectrumValue:: operator<< (int n) const
-{
-  SpectrumValue res = *this;
-  res.ShiftLeft (n);
-  return res;
-}
-
-SpectrumValue
-SpectrumValue:: operator>> (int n) const
-{
-  SpectrumValue res = *this;
-  res.ShiftRight (n);
-  return res;
-}
-
-
-
-
-} // namespace ns3
-
--- a/src/common/spectrum-value.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_VALUE_H
-#define SPECTRUM_VALUE_H
-
-#include <ns3/ptr.h>
-#include <ns3/simple-ref-count.h>
-#include <ns3/spectrum-model.h>
-#include <ostream>
-#include <vector>
-
-namespace ns3 {
-
-
-typedef std::vector<double> Values;
-
-/**
- * \brief Set of values corresponding to a given SpectrumModel
- *
- * This class implements a Function Space which can represent any
- * function \f$ g: F \in {\sf
- * R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}}^N \rightarrow {\sf R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}}  \f$
- *
- * Every instance of this class represent a particular function \f$ g(F) \f$.
- * The domain of the function space, i.e., \f$ F \f$, is implemented by SetOfFreq.
- * The codomain of the function space is implemented by SetOfValues
- *
- * To every possible value of \f$ F\f$ corresponds a different Function
- * Space.
- * Mathematical operations are defined in this Function Space; these
- * operations are implemented by means of operator overloading.
- *
- * The intended use of this class is to represent frequency-dependent
- * things, such as power spectral densities, frequency-dependent
- * propagation losses, spectral masks, etc.
- */
-class SpectrumValue : public SimpleRefCount<SpectrumValue>
-{
-public:
-  /**
-   * @brief SpectrumValue constructor
-   *
-   * @param sm pointer to the SpectrumModel which implements the set of frequencies to which the values
-   * will be referring.
-   *
-   * @warning the intended use if that sm points to a static object
-   * which will be there for the whole simulation. This is reasonable
-   * since the set of frequencies which are to be used in the
-   * simulation is normally known before the simulation starts. Make
-   * sure that the SpectrumModel instance which sm points to has already been
-   * initialized by the time this method is invoked. The main reason is
-   * that if you initialize the SpectrumModel instance afterwards, and
-   * the memory for the underlying std::vector gets reallocated, then
-   * sm will not be a valid reference anymore. Another reason is that
-   * m_values could end up having the wrong size.
-   */
-  SpectrumValue (Ptr<const SpectrumModel> sm);
-
-
-  SpectrumValue ();
-  
-
-  /**
-   * Access value at given frequency index
-   *
-   * @param index the given frequency index
-   *
-   * @return reference to the value
-   */
-  double& operator[] (size_t index);
-
-
-
-  /**
-   *
-   * @return the uid of the embedded SpectrumModel
-   */
-  SpectrumModelUid_t GetSpectrumModelUid () const;
-
-
-  /**
-   *
-   * @return the  embedded SpectrumModel
-   */
-  Ptr<const SpectrumModel> GetSpectrumModel () const;
-
-
-  /**
-   *
-   *
-   * @return a const iterator pointing to the beginning of the embedded SpectrumModel
-   */
-  Bands::const_iterator ConstBandsBegin () const;
-
-  /**
-   *
-   *
-   * @return a const iterator pointing to the end of the embedded SpectrumModel
-   */
-  Bands::const_iterator ConstBandsEnd () const;
-
-
-  /**
-   *
-   *
-   * @return a const iterator pointing to the beginning of the embedded SpectrumModel
-   */
-  Values::const_iterator ConstValuesBegin () const;
-
-  /**
-   *
-   *
-   * @return a const iterator pointing to the end of the embedded SpectrumModel
-   */
-  Values::const_iterator ConstValuesEnd () const;
-
-  /**
-   *
-   *
-   * @return an iterator pointing to the beginning of the embedded SpectrumModel
-   */
-  Values::iterator ValuesBegin ();
-
-  /**
-   *
-   *
-   * @return an iterator pointing to the end of the embedded SpectrumModel
-   */
-  Values::iterator ValuesEnd ();
-
-
-
-  /**
-   *  addition operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs + rhs
-   */
-  friend SpectrumValue operator+ (const SpectrumValue& lhs, const SpectrumValue& rhs);
-
-
-  /**
-   *  addition operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs + rhs
-   */
-  friend SpectrumValue operator+ (const SpectrumValue& lhs, double rhs);
-
-  /**
-   *  addition operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs + rhs
-   */
-  friend SpectrumValue operator+ (double lhs, const SpectrumValue& rhs);
-
-
-  /**
-   *  subtraction operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs - rhs
-   */
-  friend SpectrumValue operator- (const SpectrumValue& lhs, const SpectrumValue& rhs);
-
-  /**
-   *  subtraction operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs - rhs
-   */
-  friend SpectrumValue operator- (const SpectrumValue& lhs, double rhs);
-
-  /**
-   *  subtraction operator
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs - rhs
-   */
-  friend SpectrumValue operator- (double lhs, const SpectrumValue& rhs);
-
-  /**
-   *  multiplication component-by-component (Schur product)
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs * rhs
-   */
-  friend SpectrumValue operator* (const SpectrumValue& lhs, const SpectrumValue& rhs);
-
-  /**
-   *  multiplication by a scalar
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs * rhs
-   */
-  friend SpectrumValue operator* (const SpectrumValue& lhs, double rhs);
-
-  /**
-   *  multiplication of a scalar
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs * rhs
-   */
-  friend SpectrumValue operator* (double lhs, const SpectrumValue& rhs);
-
-  /**
-   *  division component-by-component
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of lhs / rhs
-   */
-  friend SpectrumValue operator/ (const SpectrumValue& lhs, const SpectrumValue& rhs);
-
-  /**
-   * division by a scalar
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of *this / rhs
-   */
-  friend SpectrumValue operator/ (const SpectrumValue& lhs, double rhs);
-
-  /**
-   * division of a scalar
-   *
-   * @param lhs Left Hand Side of the operator
-   * @param rhs Right Hand Side of the operator
-   *
-   * @return the value of *this / rhs
-   */
-  friend SpectrumValue operator/ (double lhs, const SpectrumValue& rhs);
-
-  /**
-   * unary plus operator
-   *
-   *
-   * @return the value of *this
-   */
-  friend SpectrumValue operator+ (const SpectrumValue& rhs);
-
-  /**
-   * unary minus operator
-   *
-   *
-   * @return the value of - *this
-   */
-  friend SpectrumValue operator- (const SpectrumValue& rhs);
-
-
-  /**
-   * left shift operator
-   *
-   * @param n position to shift
-   *
-   * @return the value of *this left shifted by n positions. In other
-   * words, the function of the set of frequencies represented by
-   * *this is left-shifted in frequency by n positions.
-   */
-  SpectrumValue operator<< (int n) const;
-
-  /**
-    * right shift operator
-    *
-    * @param n position to shift
-    *
-    * @return the value of *this right shifted by n positions. In other
-    * words, the function of the set of frequencies represented by
-    * *this is left-shifted in frequency by n positions.
-    */
-  SpectrumValue operator>> (int n) const;
-
-
-
-  /**
-   * Add the Right Hand Side of the operator to *this, component by component
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return a reference to *this
-   */
-  SpectrumValue& operator+= (const SpectrumValue& rhs);
-
-  /**
-   * Subtract the Right Hand Side of the operator from *this, component by component
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return a reference to *this
-   */
-  SpectrumValue& operator-= (const SpectrumValue& rhs);
-
-  /**
-   * Multiply *this by the Right Hand Side of the operator, component by component
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return  a reference to *this
-   */
-  SpectrumValue& operator*= (const SpectrumValue& rhs);
-
-  /**
-   * Divide *this by the Right Hand Side of the operator, component by component
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return  a reference to *this
-   */
-  SpectrumValue& operator/= (const SpectrumValue& rhs);
-
-  /**
-   * Add the value of the Right Hand Side of the operator to all
-   * components of *this
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return a reference to *this
-   */
-  SpectrumValue& operator+= (double rhs);
-
-  /**
-   * Subtract the value of the Right Hand Side of the operator from all
-   * components of *this
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return a reference to *this
-   */
-  SpectrumValue& operator-= (double rhs);
-
-  /**
-   * Multiply every component of *this by the value of the Right Hand
-   * Side of the operator
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return  a reference to *this
-   */
-  SpectrumValue& operator*= (double rhs);
-
-  /**
-   * Divide every component of *this by the value of the Right Hand
-   * Side of the operator
-   *
-   * @param rhs the Right Hand Side
-   *
-   * @return  a reference to *this
-   */
-  SpectrumValue& operator/= (double rhs);
-
-
-  /**
-   * Assign each component of *this to the value of the Right Hand
-   * Side of the operator
-   *
-   * @param rhs
-   *
-   * @return
-   */
-  SpectrumValue& operator= (double rhs);
-
-
-
-  /**
-   *
-   * @param x the operand
-   *
-   * @return the euclidean norm, i.e., the sum of the squares of all
-   * the values in x
-   */
-  friend double Norm (const SpectrumValue& x);
-
-
-  /**
-   *
-   * @param x the operand
-   *
-   * @return the sum of all
-   * the values in x
-   */
-  friend double Sum (const SpectrumValue& x);
-
-
-  /**
-   * @param x the operand
-   *
-   * @return the product of all
-   * the values in x
-   */
-  friend double Prod (const SpectrumValue& x);
-
-
-  /**
-   *
-   *
-   * @param base the base
-   * @param exp  the exponent
-   *
-   * @return each value in base raised to the exponent
-   */
-  friend SpectrumValue Pow (const SpectrumValue& base, double exp);
-
-
-  /**
-   *
-   *
-   * @param base the base
-   * @param exp  the exponent
-   *
-   * @return the value in base raised to each value in the exponent
-   */
-  friend SpectrumValue Pow (double base, const SpectrumValue& exp);
-
-  /**
-   *
-   *
-   * @param arg the argument
-   *
-   * @return the logarithm in base 10 of all values in the argument
-   */
-  friend SpectrumValue Log10 (const SpectrumValue&  arg);
-
-
-  /**
-   *
-   *
-   * @param arg the argument
-   *
-   * @return the logarithm in base 2 of all values in the argument
-   */
-  friend SpectrumValue Log2 (const SpectrumValue&  arg);
-
-  /**
-   *
-   *
-   * @param arg the argument
-   *
-   * @return the logarithm in base e of all values in the argument
-   */
-  friend SpectrumValue Log (const SpectrumValue&  arg);
-
-  /**
-   *
-   * @return a Ptr to a copy of this instance
-   */
-  Ptr<SpectrumValue> Copy () const;
-
-
-
-private:
-  void Add (const SpectrumValue& x);
-  void Add (double s);
-  void Subtract (const SpectrumValue& x);
-  void Subtract (double s);
-  void Multiply (const SpectrumValue& x);
-  void Multiply (double s);
-  void Divide (const SpectrumValue& x);
-  void Divide (double s);
-  void ChangeSign ();
-  void ShiftLeft (int n);
-  void ShiftRight (int n);
-  void Pow (double exp);
-  void Exp (double base);
-  void Log10 ();
-  void Log2 ();
-  void Log ();
-
-  Ptr<const SpectrumModel> m_spectrumModel;
-
-
-/**
- * Set of values which implement the codomain of the functions in
- * the Function Space defined by SpectrumValue. There is no restriction
- * on what these values represent (a transmission power density, a
- * propagation loss, etc.).
- *
- */
-  Values m_values;
-
-
-};
-
-std::ostream& operator << (std::ostream& os, const SpectrumValue& pvf);
-
-double Norm (const SpectrumValue& x);
-double Sum (const SpectrumValue& x);
-double Prod (const SpectrumValue& x);
-SpectrumValue Pow (const SpectrumValue& base, double exp);
-SpectrumValue Pow (double base, const SpectrumValue& exp);
-SpectrumValue Log10 (const SpectrumValue&  arg);
-SpectrumValue Log2 (const SpectrumValue&  arg);
-SpectrumValue Log (const SpectrumValue&  arg);
-
-
-} // namespace ns3
-
-
-#endif /* SPECTRUM_VALUE_H */
--- a/src/common/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/common/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -23,18 +23,6 @@
         'pcap-file-test-suite.cc',
         'pcap-file-wrapper.cc',
         'output-stream-wrapper.cc',
-        'propagation-delay-model.cc',
-        'propagation-loss-model.cc',
-        'propagation-loss-model-test-suite.cc',
-        'jakes-propagation-loss-model.cc',
-        'cost231-propagation-loss-model.cc',
-        'spectrum-model.cc',
-        'spectrum-value.cc',
-        'spectrum-value-test.cc',
-        'spectrum-converter.cc',
-        'spectrum-type.cc',
-        'spectrum-propagation-loss-model.cc',
-        'friis-spectrum-propagation-loss.cc',
         'sequence-number.cc',
         ]
 
@@ -59,15 +47,5 @@
         'pcap-file.h',
         'pcap-file-wrapper.h',
         'output-stream-wrapper.h',
-        'propagation-delay-model.h',
-        'propagation-loss-model.h',
-        'jakes-propagation-loss-model.h',
-        'cost231-propagation-loss-model.h',
-        'spectrum-model.h',
-        'spectrum-value.h',
-        'spectrum-converter.h',
-        'spectrum-type.h',
-        'spectrum-propagation-loss-model.h',
-        'friis-spectrum-propagation-loss.h',
         'sequence-number.h',
         ]
--- a/src/contrib/energy/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/contrib/energy/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    obj = bld.create_ns3_module('energy', ['node'])
+    obj = bld.create_ns3_module('energy', ['node', 'wifi'])
     obj.source = [
         'model/wifi-radio-energy-model.cc',
         'model/energy-source.cc',
--- a/src/devices/csma/csma-net-device.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/devices/csma/csma-net-device.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -681,6 +681,7 @@
     {
       NS_LOG_LOGIC ("Dropping pkt due to error model ");
       m_phyRxDropTrace (packet);
+      return;
     }
 
   //
--- a/src/devices/lte/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/devices/lte/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -2,7 +2,7 @@
 
 def build(bld):
 
-    module = bld.create_ns3_module('lte', ['core'])
+    module = bld.create_ns3_module('lte', ['core', 'node', 'common', 'spectrum'])
     module.source = [
         'model/lte-spectrum-phy.cc',
         'model/enb-lte-spectrum-phy.cc',
--- a/src/devices/spectrum/aloha-noack-mac-header.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/log.h>
-#include "aloha-noack-mac-header.h"
-
-
-NS_LOG_COMPONENT_DEFINE ("AlohaNoackMacHeader");
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (AlohaNoackMacHeader);
-
-TypeId
-AlohaNoackMacHeader::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::AlohaNoackMacHeader")
-    .SetParent<Header> ()
-    .AddConstructor<AlohaNoackMacHeader> ()
-  ;
-  return tid;
-}
-
-TypeId
-AlohaNoackMacHeader::GetInstanceTypeId (void) const
-{
-  return GetTypeId ();
-}
-
-
-
-uint32_t
-AlohaNoackMacHeader::GetSerializedSize (void) const
-{
-  return 12;
-}
-
-
-
-void
-AlohaNoackMacHeader::Serialize (Buffer::Iterator start) const
-{
-  WriteTo (start, m_destination);
-  WriteTo (start, m_source);
-}
-
-uint32_t
-AlohaNoackMacHeader::Deserialize (Buffer::Iterator start)
-{
-  ReadFrom (start, m_destination);
-  ReadFrom (start, m_source);
-  return GetSerializedSize ();
-}
-
-
-void
-AlohaNoackMacHeader::Print (std::ostream &os) const
-{
-  os << "src="  << m_source
-     << "dst="  << m_destination;
-}
-
-
-void
-AlohaNoackMacHeader::SetSource (Mac48Address source)
-{
-  m_source = source;
-}
-
-Mac48Address
-AlohaNoackMacHeader::GetSource () const
-{
-  return m_source;
-}
-
-void
-AlohaNoackMacHeader::SetDestination (Mac48Address dst)
-{
-  m_destination = dst;
-}
-
-Mac48Address
-AlohaNoackMacHeader::GetDestination () const
-{
-  return m_destination;
-}
-
-
-
-
-} // namespace ns3
-
-
--- a/src/devices/spectrum/aloha-noack-mac-header.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009, 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#ifndef ALOHA_NOACK_MAC_HEADER_H
-#define ALOHA_NOACK_MAC_HEADER_H
-
-#include <ns3/header.h>
-#include <ns3/mac48-address.h>
-#include <ns3/address-utils.h>
-
-namespace ns3 {
-
-class AlohaNoackMacHeader : public Header
-{
-public:
-  static TypeId GetTypeId (void);
-  virtual TypeId GetInstanceTypeId (void) const;
-  virtual uint32_t GetSerializedSize (void) const;
-  virtual void Serialize (Buffer::Iterator start) const;
-  virtual uint32_t Deserialize (Buffer::Iterator start);
-  virtual void Print (std::ostream &os) const;
-
-  void SetSource (Mac48Address source);
-  void SetDestination (Mac48Address destination);
-  Mac48Address GetSource () const;
-  Mac48Address GetDestination () const;
-
-private:
-  Mac48Address m_source;
-  Mac48Address m_destination;
-};
-
-
-
-} // namespace ns3
-
-#endif /* ALOHA_NOACK_MAC_HEADER_H */
--- a/src/devices/spectrum/aloha-noack-net-device.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,495 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "ns3/log.h"
-#include "ns3/queue.h"
-#include "ns3/simulator.h"
-#include "ns3/enum.h"
-#include "ns3/boolean.h"
-#include "ns3/uinteger.h"
-#include "ns3/pointer.h"
-#include "ns3/channel.h"
-#include "ns3/trace-source-accessor.h"
-#include "aloha-noack-mac-header.h"
-#include "aloha-noack-net-device.h"
-#include "ns3/llc-snap-header.h"
-
-NS_LOG_COMPONENT_DEFINE ("AlohaNoackNetDevice");
-
-
-namespace ns3 {
-
-
-std::ostream& operator<< (std::ostream& os, AlohaNoackNetDevice::State state)
-{
-  switch (state)
-    {
-    case AlohaNoackNetDevice::IDLE:
-      os << "IDLE" ;
-      break;
-    case AlohaNoackNetDevice::TX:
-      os << "TX" ;
-      break;
-    case AlohaNoackNetDevice::RX:
-      os << "RX" ;
-      break;
-    }
-  return os;
-}
-
-
-NS_OBJECT_ENSURE_REGISTERED (AlohaNoackNetDevice);
-
-TypeId
-AlohaNoackNetDevice::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::AlohaNoackNetDevice")
-    .SetParent<NetDevice> ()
-    .AddConstructor<AlohaNoackNetDevice> ()
-    .AddAttribute ("Address",
-                   "The MAC address of this device.",
-                   Mac48AddressValue (Mac48Address ("12:34:56:78:90:12")),
-                   MakeMac48AddressAccessor (&AlohaNoackNetDevice::m_address),
-                   MakeMac48AddressChecker ())
-    .AddAttribute ("Queue",
-                   "packets being transmitted get queued here",
-                   PointerValue (),
-                   MakePointerAccessor (&AlohaNoackNetDevice::m_queue),
-                   MakePointerChecker<Queue> ())
-    .AddAttribute ("Mtu", "The Maximum Transmission Unit",
-                   UintegerValue (1500),
-                   MakeUintegerAccessor (&AlohaNoackNetDevice::SetMtu,
-                                         &AlohaNoackNetDevice::GetMtu),
-                   MakeUintegerChecker<uint16_t> (1,65535))
-    .AddAttribute ("Phy", "The PHY layer attached to this device.",
-                   PointerValue (),
-                   MakePointerAccessor (&AlohaNoackNetDevice::GetPhy,
-                                        &AlohaNoackNetDevice::SetPhy),
-                   MakePointerChecker<Object> ())
-    .AddTraceSource ("MacTx",
-                     "Trace source indicating a packet has arrived for transmission by this device",
-                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macTxTrace))
-    .AddTraceSource ("MacTxDrop",
-                     "Trace source indicating a packet has been dropped by the device before transmission",
-                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macTxDropTrace))
-    .AddTraceSource ("MacPromiscRx",
-                     "A packet has been received by this device, has been passed up from the physical layer "
-                     "and is being forwarded up the local protocol stack.  This is a promiscuous trace,",
-                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macPromiscRxTrace))
-    .AddTraceSource ("MacRx",
-                     "A packet has been received by this device, has been passed up from the physical layer "
-                     "and is being forwarded up the local protocol stack.  This is a non-promiscuous trace,",
-                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macRxTrace))
-  ;
-  return tid;
-}
-
-AlohaNoackNetDevice::AlohaNoackNetDevice ()
-  : m_state (IDLE)
-{
-  NS_LOG_FUNCTION (this);
-}
-  
-AlohaNoackNetDevice::~AlohaNoackNetDevice ()
-{
-  NS_LOG_FUNCTION (this);
-  m_queue = 0;
-}
-
-void
-AlohaNoackNetDevice::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_queue = 0;
-  m_node = 0;
-  m_channel = 0;
-  m_currentPkt = 0;
-  m_phy = 0;
-  m_phyMacTxStartCallback = MakeNullCallback< bool, Ptr<Packet> > ();
-  NetDevice::DoDispose ();
-}
-
-
-void
-AlohaNoackNetDevice::SetIfIndex (const uint32_t index)
-{
-  NS_LOG_FUNCTION (index);
-  m_ifIndex = index;
-}
-
-uint32_t
-AlohaNoackNetDevice::GetIfIndex (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_ifIndex;
-}
-
-bool
-AlohaNoackNetDevice::SetMtu (uint16_t mtu)
-{
-  NS_LOG_FUNCTION (mtu);
-  m_mtu = mtu;
-  return true;
-}
-
-uint16_t
-AlohaNoackNetDevice::GetMtu (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_mtu;
-}
-
-
-void
-AlohaNoackNetDevice::SetQueue (Ptr<Queue> q)
-{
-  NS_LOG_FUNCTION (q);
-  m_queue = q;
-}
-
-
-void
-AlohaNoackNetDevice::SetAddress (Address address)
-{
-  NS_LOG_FUNCTION (this);
-  m_address = Mac48Address::ConvertFrom (address);
-}
-
-Address
-AlohaNoackNetDevice::GetAddress (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_address;
-}
-
-bool
-AlohaNoackNetDevice::IsBroadcast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return true;
-}
-
-Address
-AlohaNoackNetDevice::GetBroadcast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return Mac48Address ("ff:ff:ff:ff:ff:ff");
-}
-
-bool
-AlohaNoackNetDevice::IsMulticast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return true;
-}
-
-Address
-AlohaNoackNetDevice::GetMulticast (Ipv4Address addr) const
-{
-  NS_LOG_FUNCTION (addr);
-  Mac48Address ad = Mac48Address::GetMulticast (addr);
-  return ad;
-}
-
-
-Address AlohaNoackNetDevice::GetMulticast (Ipv6Address addr) const
-{
-  NS_LOG_FUNCTION (addr);
-  Mac48Address ad = Mac48Address::GetMulticast (addr);
-  return ad;
-}
-
-
-bool
-AlohaNoackNetDevice::IsPointToPoint (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-bool
-AlohaNoackNetDevice::IsBridge (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-
-Ptr<Node>
-AlohaNoackNetDevice::GetNode (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_node;
-}
-
-void
-AlohaNoackNetDevice::SetNode (Ptr<Node> node)
-{
-  NS_LOG_FUNCTION (node);
-
-  m_node = node;
-}
-
-void
-AlohaNoackNetDevice::SetPhy (Ptr<Object> phy)
-{
-  NS_LOG_FUNCTION (this << phy);
-  m_phy = phy;
-}
-
-
-Ptr<Object>
-AlohaNoackNetDevice::GetPhy () const
-{
-  NS_LOG_FUNCTION (this);
-  return m_phy;
-}
-
-
-void
-AlohaNoackNetDevice::SetChannel (Ptr<Channel> c)
-{
-  NS_LOG_FUNCTION (this << c);
-  m_channel = c;
-}
-
-
-Ptr<Channel>
-AlohaNoackNetDevice::GetChannel (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_channel;
-}
-
-
-bool
-AlohaNoackNetDevice::NeedsArp (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return true;
-}
-
-bool
-AlohaNoackNetDevice::IsLinkUp (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_linkUp;
-}
-
-void
-AlohaNoackNetDevice::AddLinkChangeCallback (Callback<void> callback)
-{
-  NS_LOG_FUNCTION (&callback);
-  m_linkChangeCallbacks.ConnectWithoutContext (callback);
-}
-
-void
-AlohaNoackNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb)
-{
-  NS_LOG_FUNCTION (&cb);
-  m_rxCallback = cb;
-}
-
-void
-AlohaNoackNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb)
-{
-  NS_LOG_FUNCTION (&cb);
-  m_promiscRxCallback = cb;
-}
-
-bool
-AlohaNoackNetDevice::SupportsSendFrom () const
-{
-  NS_LOG_FUNCTION (this);
-  return true;
-}
-
-
-bool
-AlohaNoackNetDevice::Send (Ptr<Packet> packet,const Address& dest, uint16_t protocolNumber)
-{
-  NS_LOG_FUNCTION (packet << dest << protocolNumber);
-  return SendFrom (packet, m_address, dest, protocolNumber);
-}
-
-bool
-AlohaNoackNetDevice::SendFrom (Ptr<Packet> packet, const Address& src, const Address& dest, uint16_t protocolNumber)
-{
-  NS_LOG_FUNCTION (packet << src << dest << protocolNumber);
-
-  LlcSnapHeader llc;
-  llc.SetType (protocolNumber);
-  packet->AddHeader (llc);
-
-  AlohaNoackMacHeader header;
-  header.SetSource (Mac48Address::ConvertFrom (src));
-  header.SetDestination (Mac48Address::ConvertFrom (dest));
-  packet->AddHeader (header);
-
-  m_macTxTrace (packet);
-
-
-
-  //
-  // If the device is idle, transmission starts immediately. Otherwise,
-  // the transmission will be started by NotifyTransmissionEnd
-  //
-  NS_LOG_LOGIC (this << " state=" << m_state);
-  if (m_state == IDLE)
-    {
-      if (m_queue->IsEmpty ())
-        {
-          NS_LOG_LOGIC ("new packet is head of queue, starting TX immediately");
-          m_currentPkt = packet;
-          StartTransmission ();
-        }
-      else
-        {
-          NS_LOG_LOGIC ("enqueueing new packet");
-          if (m_queue->Enqueue (packet) == false)
-            {
-              m_macTxDropTrace (packet);
-              return false;
-            }
-          NS_LOG_LOGIC ("transmitting head-of-queue packet");
-          m_currentPkt = m_queue->Dequeue ();
-          NS_ASSERT (m_currentPkt != 0);
-          StartTransmission ();
-        }
-    }
-  else
-    {
-      NS_LOG_LOGIC ("deferring TX, enqueueing new packet");
-      NS_ASSERT (m_queue);
-      if (m_queue->Enqueue (packet) == false)
-        {
-          m_macTxDropTrace (packet);
-          return false;
-        }
-    }
-  return true;
-}
-
-void
-AlohaNoackNetDevice::SetPhyMacTxStartCallback (PhyMacTxStartCallback c)
-{
-  NS_LOG_FUNCTION (this);
-  m_phyMacTxStartCallback = c;
-}
-
-void
-AlohaNoackNetDevice::StartTransmission ()
-{
-  NS_LOG_FUNCTION (this);
-
-  NS_ASSERT (m_currentPkt != 0);
-  NS_ASSERT (m_state == IDLE);
-
-  if (m_phyMacTxStartCallback (m_currentPkt))
-    {
-      NS_LOG_WARN ("PHY refused to start TX");
-    }
-  else
-    {
-      m_state = TX;
-    }
-}
-
-
-
-void
-AlohaNoackNetDevice::NotifyTransmissionEnd (Ptr<const Packet>)
-{
-  NS_LOG_FUNCTION (this);
-  NS_ASSERT_MSG (m_state == TX, "TX end notified while state != TX");
-  m_state = IDLE;
-  NS_ASSERT (m_queue);
-  if (m_queue->IsEmpty () == false)
-    {
-      m_currentPkt = m_queue->Dequeue ();
-      NS_ASSERT (m_currentPkt);
-      Simulator::ScheduleNow (&AlohaNoackNetDevice::StartTransmission, this);
-    }
-}
-
-
-void
-AlohaNoackNetDevice::NotifyReceptionStart ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-
-
-void
-AlohaNoackNetDevice::NotifyReceptionEndError ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-
-
-
-
-void
-AlohaNoackNetDevice::NotifyReceptionEndOk (Ptr<Packet> packet)
-{
-  NS_LOG_FUNCTION (this << packet);
-  AlohaNoackMacHeader header;
-  packet->RemoveHeader (header);
-  NS_LOG_LOGIC ("packet " << header.GetSource () << " --> " << header.GetDestination () << " (here: " << m_address << ")");
-
-  LlcSnapHeader llc;
-  packet->RemoveHeader (llc);
-
-  PacketType packetType;
-  if (header.GetDestination ().IsBroadcast ())
-    {
-      packetType = PACKET_BROADCAST;
-    }
-  else if (header.GetDestination ().IsGroup ())
-    {
-      packetType = PACKET_MULTICAST;
-    }
-  else if (header.GetDestination () == m_address)
-    {
-      packetType = PACKET_HOST;
-    }
-  else
-    {
-      packetType = PACKET_OTHERHOST;
-    }
-
-  NS_LOG_LOGIC ("packet type = " << packetType);
-
-  if (!m_promiscRxCallback.IsNull ())
-    {
-      m_promiscRxCallback (this, packet->Copy (), llc.GetType (), header.GetSource (), header.GetDestination (), packetType);
-    }
-
-  if (packetType != PACKET_OTHERHOST)
-    {
-      m_rxCallback (this, packet, llc.GetType (), header.GetSource () );
-    }
-}
-
-
-
-} // namespace ns3
--- a/src/devices/spectrum/aloha-noack-net-device.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef ALOHA_NOACK_NET_DEVICE_H
-#define ALOHA_NOACK_NET_DEVICE_H
-
-#include <string.h>
-#include <ns3/node.h>
-#include <ns3/address.h>
-#include <ns3/net-device.h>
-#include <ns3/callback.h>
-#include <ns3/packet.h>
-#include <ns3/traced-callback.h>
-#include <ns3/nstime.h>
-#include <ns3/ptr.h>
-#include <ns3/mac48-address.h>
-#include <ns3/phy-mac.h>
-
-namespace ns3 {
-
-
-class SpectrumChannel;
-class Channel;
-class SpectrumErrorModel;
-class Queue;
-
-
-
-/**
- * This devices implements the following features:
- *  - layer 3 protocol multiplexing
- *  - MAC addressing
- *  - Aloha MAC:
- *    + packets transmitted as soon as possible
- *    + a new packet is queued if previous one is still being transmitted
- *    + no acknowledgements, hence no retransmissions
- *  - can support any PHY layer compatible with the API defined in phy-mac.h
- *
- */
-class AlohaNoackNetDevice : public NetDevice
-{
-public:
-  enum State {
-    IDLE, TX, RX
-  };
-
-  static TypeId GetTypeId (void);
-
-  AlohaNoackNetDevice ();
-  virtual ~AlohaNoackNetDevice ();
-
-
-  /**
-   * set the queue which is going to be used by this device
-   *
-   * @param queue
-   */
-  virtual void SetQueue (Ptr<Queue> queue);
-
-
-  /**
-   * Notify the MAC that the PHY has finished a previously started transmission
-   *
-   */
-  void NotifyTransmissionEnd (Ptr<const Packet>);
-
-  /**
-   * Notify the MAC that the PHY has started a reception
-   *
-   */
-  void NotifyReceptionStart ();
-
-
-  /**
-   * Notify the MAC that the PHY finished a reception with an error
-   *
-   */
-  void NotifyReceptionEndError ();
-
-  /**
-   * Notify the MAC that the PHY finished a reception successfully
-   *
-   * @param p the received packet
-   */
-  void NotifyReceptionEndOk (Ptr<Packet> p);
-
-
-  /**
-   * This class doesn't talk directly with the underlying channel (a
-   * dedicated PHY class is expected to do it), however the NetDevice
-   * specification features a GetChannel() method. This method here
-   * is therefore provide to allow AlohaNoackNetDevice::GetChannel() to have
-   * something meaningful to return.
-   *
-   * @param c the underlying channel
-   */
-  void SetChannel (Ptr<Channel> c);
-
-
-  /**
-   * set the callback used to instruct the lower layer to start a TX
-   *
-   * @param c
-   */
-  void SetPhyMacTxStartCallback (PhyMacTxStartCallback c);
-
-
-
-  /**
-   * Set the Phy object which is attached to this device.
-   * This object is needed so that we can set/get attributes and
-   * connect to trace sources of the PHY from the net device.
-   *
-   * @param phy the Phy object attached to the device.  Note that the
-   * API between the PHY and the above (this NetDevice which also
-   * implements the MAC) is implemented entirely by
-   * callbacks, so we do not require that the PHY inherits by any
-   * specific class.
-   */
-  void SetPhy (Ptr<Object> phy);
-
-  /**
-   * @return a reference to the PHY object embedded in this NetDevice.
-   */
-  Ptr<Object> GetPhy () const;
-
-
-
-  // inherited from NetDevice
-  virtual void SetIfIndex (const uint32_t index);
-  virtual uint32_t GetIfIndex (void) const;
-  virtual Ptr<Channel> GetChannel (void) const;
-  virtual bool SetMtu (const uint16_t mtu);
-  virtual uint16_t GetMtu (void) const;
-  virtual void SetAddress (Address address);
-  virtual Address GetAddress (void) const;
-  virtual bool IsLinkUp (void) const;
-  virtual void AddLinkChangeCallback (Callback<void> callback);
-  virtual bool IsBroadcast (void) const;
-  virtual Address GetBroadcast (void) const;
-  virtual bool IsMulticast (void) const;
-  virtual bool IsPointToPoint (void) const;
-  virtual bool IsBridge (void) const;
-  virtual bool Send (Ptr<Packet> packet, const Address& dest,
-                     uint16_t protocolNumber);
-  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest,
-                         uint16_t protocolNumber);
-  virtual Ptr<Node> GetNode (void) const;
-  virtual void SetNode (Ptr<Node> node);
-  virtual bool NeedsArp (void) const;
-  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
-  virtual Address GetMulticast (Ipv4Address addr) const;
-  virtual Address GetMulticast (Ipv6Address addr) const;
-  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
-  virtual bool SupportsSendFrom (void) const;
-
-
-
-
-
-private:
-  void NotifyGuardIntervalEnd ();
-  virtual void DoDispose (void);
-
-  /**
-   * start the transmission of a packet by contacting the PHY layer
-   *
-   */
-  void StartTransmission ();
-
-
-  Ptr<Queue> m_queue;
-
-  TracedCallback<Ptr<const Packet> > m_macTxTrace;
-  TracedCallback<Ptr<const Packet> > m_macTxDropTrace;
-  TracedCallback<Ptr<const Packet> > m_macPromiscRxTrace;
-  TracedCallback<Ptr<const Packet> > m_macRxTrace;
-
-  Ptr<Node>    m_node;
-  Ptr<Channel> m_channel;
-
-  Mac48Address m_address;
-
-  NetDevice::ReceiveCallback m_rxCallback;
-  NetDevice::PromiscReceiveCallback m_promiscRxCallback;
-
-  PhyMacTxStartCallback m_phyMacTxStartCallback;
-
-  /**
-   * List of callbacks to fire if the link changes state (up or down).
-   */
-  TracedCallback<> m_linkChangeCallbacks;
-
-
-  uint32_t m_ifIndex;
-  mutable uint32_t m_mtu;
-  bool m_linkUp;
-
-
-  State m_state;
-
-  Ptr<Packet> m_currentPkt;
-
-  Ptr<Object> m_phy;
-};
-
-
-} // namespace ns3
-
-#endif // ALOHA_NOACK_NET_DEVICE_H
--- a/src/devices/spectrum/half-duplex-ideal-phy.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,431 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/waveform-generator.h>
-#include <ns3/object-factory.h>
-#include <ns3/log.h>
-#include <math.h>
-#include <ns3/simulator.h>
-#include <ns3/trace-source-accessor.h>
-#include <ns3/packet-burst.h>
-#include <ns3/callback.h>
-#include "half-duplex-ideal-phy.h"
-#include "spectrum-error-model.h"
-
-NS_LOG_COMPONENT_DEFINE ("HalfDuplexIdealPhy");
-
-namespace ns3 {
-
-
-NS_OBJECT_ENSURE_REGISTERED (HalfDuplexIdealPhy);
-
-HalfDuplexIdealPhy::HalfDuplexIdealPhy ()
-  : m_mobility (0),
-    m_netDevice (0),
-    m_channel (0),
-    m_txPsd (0),
-    m_state (IDLE)
-{
-  m_interference.SetErrorModel (CreateObject<ShannonSpectrumErrorModel> ());
-}
-
-
-HalfDuplexIdealPhy::~HalfDuplexIdealPhy ()
-{
-}
-
-void
-HalfDuplexIdealPhy::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_mobility = 0;
-  m_netDevice = 0;
-  m_channel = 0;
-  m_txPsd = 0;
-  m_rxPsd = 0;
-  m_txPacket = 0;
-  m_rxPacket = 0;
-  m_phyMacTxEndCallback      = MakeNullCallback< void, Ptr<const Packet> > ();
-  m_phyMacRxStartCallback    = MakeNullCallback< void > ();
-  m_phyMacRxEndErrorCallback = MakeNullCallback< void > ();
-  m_phyMacRxEndOkCallback    = MakeNullCallback< void, Ptr<Packet> >  ();
-  SpectrumPhy::DoDispose ();
-}
-
-std::ostream& operator<< (std::ostream& os, HalfDuplexIdealPhy::State s)
-{
-  switch (s)     
-    {
-    case HalfDuplexIdealPhy::IDLE:
-      os << "IDLE";
-      break;
-    case HalfDuplexIdealPhy::RX:
-      os << "RX";
-      break;
-    case HalfDuplexIdealPhy::TX:
-      os << "TX";
-      break;
-    default:
-      os << "UNKNOWN";
-      break;
-    }
-  return os;
-}
-
-
-TypeId
-HalfDuplexIdealPhy::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::HalfDuplexIdealPhy")
-    .SetParent<SpectrumPhy> ()
-    .AddConstructor<HalfDuplexIdealPhy> ()
-    .AddAttribute ("Rate",
-                   "The PHY rate used by this device",
-                   DataRateValue (DataRate ("1Mbps")),
-                   MakeDataRateAccessor (&HalfDuplexIdealPhy::SetRate,
-                                         &HalfDuplexIdealPhy::GetRate),
-                   MakeDataRateChecker ())
-    .AddTraceSource ("TxStart",
-                     "Trace fired when a new transmission is started",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyTxStartTrace))
-    .AddTraceSource ("TxEnd",
-                     "Trace fired when a previosuly started transmission is finished",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyTxEndTrace))
-    .AddTraceSource ("RxStart",
-                     "Trace fired when the start of a signal is detected",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxStartTrace))
-    .AddTraceSource ("RxAbort",
-                     "Trace fired when a previously started RX is aborted before time",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxAbortTrace))
-    .AddTraceSource ("RxEndOk",
-                     "Trace fired when a previosuly started RX terminates successfully",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxEndOkTrace))
-    .AddTraceSource ("RxEndError",
-                     "Trace fired when a previosuly started RX terminates with an error (packet is corrupted)",
-                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxEndErrorTrace))
-  ;
-  return tid;
-}
-
-
-
-Ptr<Object>
-HalfDuplexIdealPhy::GetDevice ()
-{
-  NS_LOG_FUNCTION (this);
-  return m_netDevice;
-}
-
-
-Ptr<Object>
-HalfDuplexIdealPhy::GetMobility ()
-{
-  NS_LOG_FUNCTION (this);
-  return m_mobility;
-}
-
-
-void
-HalfDuplexIdealPhy::SetDevice (Ptr<Object> d)
-{
-  NS_LOG_FUNCTION (this << d);
-  m_netDevice = d;
-}
-
-
-void
-HalfDuplexIdealPhy::SetMobility (Ptr<Object> m)
-{
-  NS_LOG_FUNCTION (this << m);
-  m_mobility = m;
-}
-
-
-void
-HalfDuplexIdealPhy::SetChannel (Ptr<SpectrumChannel> c)
-{
-  NS_LOG_FUNCTION (this << c);
-  m_channel = c;
-}
-
-Ptr<const SpectrumModel> 
-HalfDuplexIdealPhy::GetRxSpectrumModel () const
-{
-  if (m_txPsd)
-    {
-      return m_txPsd->GetSpectrumModel ();
-    }
-  else
-    {
-      return 0;
-    }
-}
-
-
-SpectrumType
-HalfDuplexIdealPhy::GetSpectrumType ()
-{
-  NS_LOG_FUNCTION (this);
-  static SpectrumType st = SpectrumTypeFactory::Create ("IdealOfdm");
-  return st;
-}
-
-void
-HalfDuplexIdealPhy::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
-{
-  NS_LOG_FUNCTION (this << txPsd);
-  NS_ASSERT (txPsd);
-  m_txPsd = txPsd;
-  NS_LOG_INFO ( *txPsd << *m_txPsd);
-}
-
-void
-HalfDuplexIdealPhy::SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd)
-{
-  NS_LOG_FUNCTION (this << noisePsd);
-  NS_ASSERT (noisePsd);
-  m_interference.SetNoisePowerSpectralDensity (noisePsd);
-}
-
-void
-HalfDuplexIdealPhy::SetRate (DataRate rate)
-{
-  NS_LOG_FUNCTION (this << rate);
-  m_rate = rate;
-}
-
-DataRate
-HalfDuplexIdealPhy::GetRate () const
-{
-  NS_LOG_FUNCTION (this);
-  return m_rate;
-}
-
-
-void
-HalfDuplexIdealPhy::SetPhyMacTxEndCallback (PhyMacTxEndCallback c)
-{
-  NS_LOG_FUNCTION (this);
-  m_phyMacTxEndCallback = c;
-}
-
-void
-HalfDuplexIdealPhy::SetPhyMacRxStartCallback (PhyMacRxStartCallback c)
-{
-  NS_LOG_FUNCTION (this);
-  m_phyMacRxStartCallback = c;
-}
-
-
-void
-HalfDuplexIdealPhy::SetPhyMacRxEndErrorCallback (PhyMacRxEndErrorCallback c)
-{
-  NS_LOG_FUNCTION (this);
-  m_phyMacRxEndErrorCallback = c;
-}
-
-
-void
-HalfDuplexIdealPhy::SetPhyMacRxEndOkCallback (PhyMacRxEndOkCallback c)
-{
-  NS_LOG_FUNCTION (this);
-  m_phyMacRxEndOkCallback = c;
-}
-
-void 
-HalfDuplexIdealPhy::ChangeState (State newState)
-{
-  NS_LOG_LOGIC (this << " state: " << m_state << " -> " << newState);
-  m_state = newState;
-}
-
-bool
-HalfDuplexIdealPhy::StartTx (Ptr<Packet> p)
-{
-  NS_LOG_FUNCTION (this << p);
-  NS_LOG_LOGIC (this << "state: " << m_state);
-
-  m_phyTxStartTrace (p);
-
-  switch (m_state)
-    {
-    case RX:
-      AbortRx ();
-      // fall through
-
-    case IDLE:
-      {
-        m_txPacket = p;
-        ChangeState (TX);
-        double txTimeSeconds = m_rate.CalculateTxTime (p->GetSize ());
-        Ptr<PacketBurst> pb = Create<PacketBurst> ();
-        pb->AddPacket (p);
-        m_channel->StartTx (pb, m_txPsd, GetSpectrumType (), Seconds (txTimeSeconds), GetObject<SpectrumPhy> ());
-        Simulator::Schedule(Seconds (txTimeSeconds), &HalfDuplexIdealPhy::EndTx, this);
-      }
-      break;
-
-    case TX:
-
-      return true;
-      break;
-    }
-  return false;
-}
-
-
-void
-HalfDuplexIdealPhy::EndTx ()
-{
-  NS_LOG_FUNCTION (this);
-  NS_LOG_LOGIC (this << "state: " << m_state);
-
-  NS_ASSERT (m_state == TX);
-
-  m_phyTxEndTrace (m_txPacket);
-
-  if (!m_phyMacTxEndCallback.IsNull ())
-    {
-      m_phyMacTxEndCallback (m_txPacket);
-    }
-
-  m_txPacket = 0;
-  ChangeState (IDLE);
-}
-
-
-void
-HalfDuplexIdealPhy::StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration)
-{
-  NS_LOG_FUNCTION (this << pb << rxPsd << st << duration);
-  NS_LOG_LOGIC (this << "state: " << m_state);
-
-  // interference will happen regardless of the state of the receiver
-  m_interference.AddSignal (rxPsd, duration);
-
-  // the device might start RX only if the signal is of a type understood by this device
-  // this corresponds in real device to preamble detection
-  if (st == GetSpectrumType ())
-    {
-      switch (m_state)
-        {
-        case TX:
-          // the PHY will not notice this incoming signal
-          break;
-
-        case RX:
-          // we should check if we should re-sync on a new incoming signal and discard the old one
-          // (somebody calls this the "capture" effect)
-          // criteria considered to do might include the following:
-          //  1) signal strength (e.g., as returned by rxPsd.Norm ())
-          //  2) how much time has passed since previous RX attempt started
-          // if re-sync (capture) is done, then we should call AbortRx ()
-          break;
-
-        case IDLE:
-          // preamble detection and synchronization is supposed to be always successful.
-          NS_LOG_LOGIC (this << " receiving " << pb->GetNPackets () << "  packet(s)" );          
-          NS_ASSERT (pb->GetNPackets () == 1); // this PHY only supports a single packet per waveform
-          Ptr<Packet> p = pb->GetPackets ().front ();
-          m_phyRxStartTrace (p);
-          m_rxPacket = p;
-          m_rxPsd = rxPsd;
-          ChangeState (RX);
-          if (!m_phyMacRxStartCallback.IsNull ())
-            {
-              NS_LOG_LOGIC (this << " calling m_phyMacRxStartCallback");
-              m_phyMacRxStartCallback ();
-            }
-          else
-            {
-              NS_LOG_LOGIC (this << " m_phyMacRxStartCallback is NULL");
-            }
-          m_interference.StartRx (p, rxPsd);
-          NS_LOG_LOGIC (this << " scheduling EndRx with delay " << duration);
-          m_endRxEventId = Simulator::Schedule (duration, &HalfDuplexIdealPhy::EndRx, this);
-
-          break;
-
-        }
-    }
-  
-  NS_LOG_LOGIC (this << "state: " << m_state);
-}
-
-
-void
-HalfDuplexIdealPhy::AbortRx ()
-{
-  NS_LOG_FUNCTION (this);
-  NS_LOG_LOGIC (this << "state: " << m_state);
-
-  NS_ASSERT (m_state == RX);
-  m_phyRxAbortTrace (m_rxPacket);
-  m_endRxEventId.Cancel ();
-  m_rxPacket = 0;
-  ChangeState (IDLE);
-}
-
-
-void
-HalfDuplexIdealPhy::EndRx ()
-{
-  NS_LOG_FUNCTION (this);
-  NS_LOG_LOGIC (this << "state: " << m_state);
-
-  NS_ASSERT (m_state == RX);
-
-  bool rxOk = m_interference.EndRx ();
-
-  if (rxOk)
-    {
-      m_phyRxEndOkTrace (m_rxPacket);
-      if (!m_phyMacRxEndOkCallback.IsNull ())
-        {
-          NS_LOG_LOGIC (this << " calling m_phyMacRxEndOkCallback");
-          m_phyMacRxEndOkCallback (m_rxPacket);
-        }
-      else
-        {
-          NS_LOG_LOGIC (this << " m_phyMacRxEndOkCallback is NULL");
-        }
-    }
-  else
-    {
-      m_phyRxEndErrorTrace (m_rxPacket);
-      if (!m_phyMacRxEndErrorCallback.IsNull ())
-        {
-          NS_LOG_LOGIC (this << " calling m_phyMacRxEndErrorCallback");
-          m_phyMacRxEndErrorCallback ();
-        }
-      else
-        {
-          NS_LOG_LOGIC (this << " m_phyMacRxEndErrorCallback is NULL");
-        }
-    }
-
-  ChangeState (IDLE);
-  m_rxPacket = 0;
-  m_rxPsd = 0;
-}
-
-
-
-} // namespace ns3
--- a/src/devices/spectrum/half-duplex-ideal-phy.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef HALF_DUPLEX_IDEAL_PHY_H
-#define HALF_DUPLEX_IDEAL_PHY_H
-
-
-#include <ns3/spectrum-value.h>
-#include <ns3/mobility-model.h>
-#include <ns3/packet.h>
-#include <ns3/nstime.h>
-#include <ns3/net-device.h>
-#include <ns3/spectrum-phy.h>
-#include <ns3/spectrum-channel.h>
-#include <ns3/spectrum-type.h>
-#include <ns3/spectrum-interference.h>
-#include <ns3/data-rate.h>
-#include <ns3/phy-mac.h>
-
-namespace ns3 {
-
-
-
-/**
- * This PHY layer implementation realizes an ideal OFDM PHY which
- * transmits half-duplex (i.e., it can either receive or transmit at a
- * given time). The device is ideal in the sense that:
- * 1) it uses an error model based on the Shannon capacity, which
- * assumes ideal channel coding;
- * 2) it uses ideal signal acquisition, i.e., preamble detection and
- * synchronization are always successful
- * 3) it has no PHY layer overhead
- *
- * Being half duplex, if a RX is ongoing but a TX is requested, the RX
- * is aborted and the TX is started. Of course, no RX can be performed
- * while there is an ongoing TX.
- *
- * The use of OFDM is modeled by means of the Spectrum framework. By
- * calling the method SetTxPowerSpectralDensity(), the
- * user can specify how much of the spectrum is used, how many
- * subcarriers are used, and what power is allocated to each
- * subcarrier.
- *
- * The user can also specify the PHY rate
- * at which communications take place by using SetRate(). This is
- * equivalent to choosing a particular modulation and coding scheme.
- *
- * The use of the ShannonSpectrumErrorModel allows us to account for
- * the following aspects in determining whether a
- * transmission is successful or not:
- * - the PHY rate (trades off communication speed with reliability)
- * - the power spectral density (trade-off among total power consumed,
- * total bandwidth used (i.e., how much of the spectrum is occupied),
- * and communication reliability)
- * - the signal propagation
- */
-class HalfDuplexIdealPhy : public SpectrumPhy
-{
-
-public:
-  HalfDuplexIdealPhy ();
-  virtual ~HalfDuplexIdealPhy ();
-
-  /**
-   *  PHY states
-   *
-   */
-  enum State {
-    IDLE, TX, RX
-  };
-
-  static TypeId GetTypeId (void);
-
-  // inherited from SpectrumPhy
-  void SetChannel (Ptr<SpectrumChannel> c);
-  void SetMobility (Ptr<Object> m);
-  void SetDevice (Ptr<Object> d);
-  Ptr<Object> GetMobility ();
-  Ptr<Object> GetDevice ();
-  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
-  void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration);
-  
-
-
-  /**
-   * Get the SpectrumType used by this PHY
-   *
-   * @return
-   */
-  SpectrumType GetSpectrumType ();
-
-
-  /**
-   * set the Power Spectral Density of outgoing signals in power units
-   * (Watt, Pascal...) per Hz.
-   *
-   * @param txPsd
-   */
-  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
-
-  /**
-   *
-   * @param noisePsd the Noise Power Spectral Density in power units
-   * (Watt, Pascal...) per Hz.
-   */
-  void SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd);
-
-
-  /**
-   * Start a transmission
-   *
-   *
-   * @param p the packet to be transmitted
-   *
-   * @return true if an error occurred and the transmission was not
-   * started, false otherwise.
-   */
-  bool StartTx (Ptr<Packet> p);
-
-  /**
-   * set the PHY rate to be used by this PHY.
-   *
-   * @param rate
-   */
-  void SetRate (DataRate rate);
-
-  /**
-   *
-   * @return the PHY rate used by this PHY.
-   */
-  DataRate GetRate () const;
-
-  /**
-   * set the callback for the end of a TX, as part of the
-   * interconnections betweenthe PHY and the MAC
-   *
-   * @param c the callback
-   */
-  void SetPhyMacTxEndCallback (PhyMacTxEndCallback c);
-
-  /**
-   * set the callback for the start of RX, as part of the
-   * interconnections betweenthe PHY and the MAC
-   *
-   * @param c the callback
-   */
-  void SetPhyMacRxStartCallback (PhyMacRxStartCallback c);
-
-  /**
-   * set the callback for the end of a RX in error, as part of the
-   * interconnections betweenthe PHY and the MAC
-   *
-   * @param c the callback
-   */
-  void SetPhyMacRxEndErrorCallback (PhyMacRxEndErrorCallback c);
-
-  /**
-   * set the callback for the successful end of a RX, as part of the
-   * interconnections betweenthe PHY and the MAC
-   *
-   * @param c the callback
-   */
-  void SetPhyMacRxEndOkCallback (PhyMacRxEndOkCallback c);
-
-
-
-private:
-
-  virtual void DoDispose (void);
-  
-  void ChangeState (State newState);
-  void EndTx ();
-  void AbortRx ();
-  void EndRx ();
-
-  EventId m_endRxEventId;
-
-  Ptr<Object> m_mobility;
-  Ptr<Object> m_netDevice;
-  Ptr<SpectrumChannel> m_channel;
-
-  Ptr<SpectrumValue> m_txPsd;
-  Ptr<const SpectrumValue> m_rxPsd;
-  Ptr<Packet> m_txPacket;
-  Ptr<Packet> m_rxPacket;
-
-  DataRate m_rate;
-
-  State m_state;
-
-  TracedCallback<Ptr<const Packet> > m_phyTxStartTrace;
-  TracedCallback<Ptr<const Packet> > m_phyTxEndTrace;
-  TracedCallback<Ptr<const Packet> > m_phyRxStartTrace;
-  TracedCallback<Ptr<const Packet> > m_phyRxAbortTrace;
-  TracedCallback<Ptr<const Packet> > m_phyRxEndOkTrace;
-  TracedCallback<Ptr<const Packet> > m_phyRxEndErrorTrace;
-
-  PhyMacTxEndCallback        m_phyMacTxEndCallback;
-  PhyMacRxStartCallback      m_phyMacRxStartCallback;
-  PhyMacRxEndErrorCallback   m_phyMacRxEndErrorCallback;
-  PhyMacRxEndOkCallback      m_phyMacRxEndOkCallback;
-
-  SpectrumInterference m_interference;
-
-};
-
-
-
-
-
-
-}
-
-
-
-
-
-#endif /* HALF_DUPLEX_IDEAL_PHY_H */
--- a/src/devices/spectrum/microwave-oven-spectrum-value-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "ns3/log.h"
-#include "microwave-oven-spectrum-value-helper.h"
-
-NS_LOG_COMPONENT_DEFINE ("MicrowaveOvenSpectrumValue");
-
-namespace ns3 {
-
-  
-Ptr<SpectrumModel> g_MicrowaveOvenSpectrumModel5Mhz;
-Ptr<SpectrumModel> g_MicrowaveOvenSpectrumModel6Mhz;
-
-
-class MicrowaveOvenSpectrumModel5MhzInitializer
-{
-public:
-  MicrowaveOvenSpectrumModel5MhzInitializer ()
-  {
-    NS_LOG_FUNCTION(this);
-    Bands bands;
-   for (double fl = 2400e6; fl < 2499e6; fl += 5e6)
-      {
-        BandInfo bi;
-        bi.fl = fl;
-        bi.fc = fl + 5e6;
-        bi.fh = fl + 10e6;
-        bands.push_back (bi);
-      }
-   NS_LOG_LOGIC("bands.size () :" << bands.size ());
-   g_MicrowaveOvenSpectrumModel5Mhz = Create<SpectrumModel> (bands);
-  }
-} g_MicrowaveOvenSpectrumModel5MhzInitializerInstance;
-
-
-
-class MicrowaveOvenSpectrumModel6MhzInitializer
-{
-public:
-  MicrowaveOvenSpectrumModel6MhzInitializer ()
-  {
-    NS_LOG_FUNCTION(this);
-    Bands bands;
-    for (double fl = 2360e6; fl < 2479e6; fl += 6e6)
-      {
-        BandInfo bi;
-        bi.fl = fl;
-        bi.fc = fl + 6e6;
-        bi.fh = fl + 12e6;
-        bands.push_back (bi);
-      }
-    NS_LOG_LOGIC("bands.size () :" << bands.size ());
-    g_MicrowaveOvenSpectrumModel6Mhz = Create<SpectrumModel> (bands);
-  }
-} g_MicrowaveOvenSpectrumModel6MhzInitializerInstance;
-
-
-
-
-
-Ptr<SpectrumValue> 
-MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo1 ()
-{  
-  Ptr<SpectrumValue> psd = Create <SpectrumValue> (g_MicrowaveOvenSpectrumModel6Mhz);
-
-  // values from this paper:
-  // Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
-  // "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008,
-  // see Figure 3, "Experimental PSD of MWO #1"
-  // the figure has a resolution of 12 MHz per division; we use a
-  // SpectrumModel with a per-subband bandwidth of 6MHz, so we have
-  // two samples per division. The values used here are an approximation
-  // of what appears in the figure.
-
-  (*psd)[0] = -67.5;
-  (*psd)[1] = -67.5;
-  (*psd)[2] = -67.5;
-  (*psd)[3] = -67.5;
-  (*psd)[4] = -67.5;
-  (*psd)[5] = -66;
-  (*psd)[6] = -64;
-  (*psd)[7] = -63;
-  (*psd)[8] = -62.5;
-  (*psd)[9] = -63;
-  (*psd)[10] = -62.5;
-  (*psd)[11] = -62.5;
-  (*psd)[12] = -58;
-  (*psd)[13] = -53.5;
-  (*psd)[14] = -44;
-  (*psd)[15] = -38;
-  (*psd)[16] = -45;
-  (*psd)[17] = -65;
-  (*psd)[18] = -67.5;
-  (*psd)[19] = -67.5;
-
-  // convert to W/Hz
-  (*psd) = Pow(10.0, ((*psd) - 30)/10.0);
-
-  return psd;
-}
-
-
-
-Ptr<SpectrumValue> 
-MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo2 ()
-{  
-  // values from this paper:
-  // Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
-  // "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008,
-  // see Figure 9, "Experimental PSD of actual MWO #2"
-  // the figure has a resolution of 10 MHz per division; we use a
-  // SpectrumModel with a per-subband bandwidth of 5MHz, so we have
-  // two samples per division. The values used here are an approximation
-  // of what appears in the figure.
-
-  Ptr<SpectrumValue> psd = Create <SpectrumValue> (g_MicrowaveOvenSpectrumModel5Mhz);
-
-  (*psd)[0] = -68; 
-  (*psd)[1] = -68; 
-  (*psd)[2] = -68;
-  (*psd)[3] = -68;
-  (*psd)[4] = -65; 
-  (*psd)[5] = -62;
-  (*psd)[6] = -56; 
-  (*psd)[7] = -55; 
-  (*psd)[8] = -47;
-  (*psd)[9] = -40;
-  (*psd)[10] = -37;
-  (*psd)[11] = -33;
-  (*psd)[12] = -45;
-  (*psd)[13] = -67;
-  (*psd)[14] = -68;
-  (*psd)[15] = -68;
-  (*psd)[16] = -68;
-  (*psd)[17] = -68;
-  (*psd)[18] = -68;
-  (*psd)[19] = -68;
-
-  // convert to W/Hz
-  (*psd) = Pow(10.0, ((*psd) - 30)/10.0);
-
-  return psd;
-}
-
-
-
-} //namespace ns3
--- a/src/devices/spectrum/microwave-oven-spectrum-value-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H
-#define MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H
-
-
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-
-/** 
- * This class provides methods for the creation of SpectrumValue
- * instances that mimic the Power Spectral Density of commercial
- * microwave ovens based on the measurements reported in the following paper:
- * Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
- * "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008
- *
- */
-class MicrowaveOvenSpectrumValueHelper 
-{
-public:
-
-  /** 
-   * 
-   * @return the Power Spectral Density of Micro Wave Oven #1 in the
-   * cited paper
-   */
-  static Ptr<SpectrumValue> CreatePowerSpectralDensityMwo1 ();
-
-  /** 
-   * 
-   * @return the Power Spectral Density of Micro Wave Oven #2 in the
-   * cited paper
-   */  
-  static Ptr<SpectrumValue> CreatePowerSpectralDensityMwo2 ();
-
-};
-
-
-
-
-  
-} //namespace ns3
-
-
-
-#endif /*  MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H */
--- a/src/devices/spectrum/multi-model-spectrum-channel.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,353 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/object.h>
-#include <ns3/simulator.h>
-#include <ns3/log.h>
-#include <ns3/packet.h>
-#include <ns3/packet-burst.h>
-#include <ns3/net-device.h>
-#include <ns3/node.h>
-#include <ns3/mobility-model.h>
-#include <ns3/spectrum-phy.h>
-#include <ns3/spectrum-converter.h>
-#include <iostream>
-#include <utility>
-#include "multi-model-spectrum-channel.h"
-
-
-NS_LOG_COMPONENT_DEFINE ("MultiModelSpectrumChannel");
-
-
-namespace ns3 {
-
-
-NS_OBJECT_ENSURE_REGISTERED (MultiModelSpectrumChannel);
-
-
-std::ostream& operator<< (std::ostream& lhs, TxSpectrumModelInfoMap_t& rhs)
-{
-  for (TxSpectrumModelInfoMap_t::iterator it = rhs.begin ();
-       it != rhs.end ();
-       ++it)
-    {
-      SpectrumConverterMap_t::iterator jt;
-      for (jt = it->second.m_spectrumConverterMap.begin ();
-           jt != it->second.m_spectrumConverterMap.end ();
-           ++jt)
-        {
-          lhs << "(" << it->first << "," << jt->first << ") ";
-        }
-    }
-  return lhs;
-}
-
-TxSpectrumModelInfo::TxSpectrumModelInfo (Ptr<const SpectrumModel> txSpectrumModel)
-  : m_txSpectrumModel (txSpectrumModel)
-{
-}
-
-
-RxSpectrumModelInfo::RxSpectrumModelInfo (Ptr<const SpectrumModel> rxSpectrumModel)
-  : m_rxSpectrumModel (rxSpectrumModel)
-{
-}
-
-
-MultiModelSpectrumChannel::MultiModelSpectrumChannel ()
-  : m_PropagationDelay (0),
-    m_PropagationLoss (0)
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-MultiModelSpectrumChannel::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_PropagationLoss = 0;
-  m_PropagationDelay = 0;
-  m_txSpectrumModelInfoMap.clear ();
-  m_rxSpectrumModelInfoMap.clear ();
-  m_phyVector.clear ();
-}
-
-TypeId
-MultiModelSpectrumChannel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::MultiModelSpectrumChannel")
-    .SetParent<SpectrumChannel> ()
-    .AddConstructor<MultiModelSpectrumChannel> ()
-  ;
-  return tid;
-}
-
-
-
-void
-MultiModelSpectrumChannel::AddRx (Ptr<SpectrumPhy> phy)
-{
-  NS_LOG_FUNCTION (this << phy);
-
-  Ptr<const SpectrumModel> rxSpectrumModel = phy->GetRxSpectrumModel ();
-
-  NS_ASSERT_MSG ((0 != rxSpectrumModel), "phy->GetRxSpectrumModel () returned 0. Please check that the RxSpectrumModel is already set for the phy before calling MultiModelSpectrumChannel::AddRx (phy)");
-
-  SpectrumModelUid_t rxSpectrumModelUid = rxSpectrumModel->GetUid ();
-    
-  std::vector<Ptr<SpectrumPhy> >::const_iterator it;
-
-  // make sure this phy had not been already added
-  for ( it = m_phyVector.begin (); it != m_phyVector.end (); ++it)
-    {
-      NS_ASSERT (*it != phy);
-    }
-  m_phyVector.push_back (phy);
-    
-  RxSpectrumModelInfoMap_t::iterator rxInfoIterator = m_rxSpectrumModelInfoMap.find (rxSpectrumModelUid);
-
-  if (rxInfoIterator == m_rxSpectrumModelInfoMap.end ())
-    {
-      // spectrum model unknown, add it to the list of RxSpectrumModels
-      std::pair<RxSpectrumModelInfoMap_t::iterator, bool> ret;
-      ret = m_rxSpectrumModelInfoMap.insert (std::make_pair (rxSpectrumModelUid, RxSpectrumModelInfo (rxSpectrumModel)));            
-      NS_ASSERT (ret.second);
-      // also add the phy to the newly created list of SpectrumPhy for this RxSpectrumModel
-      ret.first->second.m_rxPhyList.push_back (phy);
-      
-      // and create the necessary converters for all the TX spectrum models that we know of
-      for (TxSpectrumModelInfoMap_t::iterator txInfoIterator = m_txSpectrumModelInfoMap.begin ();
-           txInfoIterator != m_txSpectrumModelInfoMap.end ();
-           ++txInfoIterator)
-        {
-          Ptr<const SpectrumModel> txSpectrumModel = txInfoIterator->second.m_txSpectrumModel;
-          NS_LOG_LOGIC ("Creating converters between SpectrumModelUids " << txSpectrumModel->GetUid () << " and " << rxSpectrumModelUid );
-          SpectrumConverter converter (txSpectrumModel, rxSpectrumModel);
-          std::pair<SpectrumConverterMap_t::iterator, bool> ret2;
-          ret2 = txInfoIterator->second.m_spectrumConverterMap.insert (std::make_pair (rxSpectrumModelUid, converter));                     
-          NS_ASSERT (ret2.second);
-        }
-    }
-  else
-    {
-      // spectrum model is already known, just add the device to the corresponding list
-      rxInfoIterator->second.m_rxPhyList.push_back (phy);
-    }
-  
-}
-
-
-TxSpectrumModelInfoMap_t::const_iterator
-MultiModelSpectrumChannel::FindAndEventuallyAddTxSpectrumModel (Ptr<const SpectrumModel> txSpectrumModel)
-{
-  NS_LOG_FUNCTION (this << txSpectrumModel);
-  SpectrumModelUid_t txSpectrumModelUid = txSpectrumModel->GetUid ();
-  TxSpectrumModelInfoMap_t::iterator txInfoIterator = m_txSpectrumModelInfoMap.find (txSpectrumModelUid);
-  
-  if (txInfoIterator == m_txSpectrumModelInfoMap.end ())
-    {     
-      // first time we see this TX SpectrumModel
-      // we add it to the list
-      std::pair<TxSpectrumModelInfoMap_t::iterator, bool> ret;
-      ret = m_txSpectrumModelInfoMap.insert (std::make_pair (txSpectrumModelUid, TxSpectrumModelInfo (txSpectrumModel)));
-      NS_ASSERT (ret.second); 
-      txInfoIterator = ret.first;
-      
-      // and we create the converters for all the RX SpectrumModels that we know of
-      for (RxSpectrumModelInfoMap_t::const_iterator rxInfoIterator = m_rxSpectrumModelInfoMap.begin ();
-           rxInfoIterator != m_rxSpectrumModelInfoMap.end ();
-           ++rxInfoIterator)
-        {
-          Ptr<const SpectrumModel> rxSpectrumModel = rxInfoIterator->second.m_rxSpectrumModel;
-          SpectrumModelUid_t rxSpectrumModelUid = rxSpectrumModel->GetUid ();
-
-          if (rxSpectrumModelUid != txSpectrumModelUid)
-            {
-              NS_LOG_LOGIC ("Creating converters between SpectrumModelUids " << txSpectrumModelUid << " and " << rxSpectrumModelUid );
-
-              SpectrumConverter converter (txSpectrumModel, rxSpectrumModel);
-              std::pair<SpectrumConverterMap_t::iterator, bool> ret2;
-              ret2 = txInfoIterator->second.m_spectrumConverterMap.insert (std::make_pair (rxSpectrumModelUid, converter));                     
-              NS_ASSERT (ret2.second);
-            }
-        }                
-    }
-  else
-    {
-      NS_LOG_LOGIC ("SpectrumModelUid " << txSpectrumModelUid << " already present");     
-    }
-  return txInfoIterator;
-}
-
-
-void
-MultiModelSpectrumChannel::StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> originalTxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> txPhy)
-{
-  NS_LOG_FUNCTION (this << p << *originalTxPowerSpectrum << duration << txPhy);
-
-  NS_ASSERT (txPhy);
-  NS_ASSERT (originalTxPowerSpectrum);
-  
-
-  Ptr<MobilityModel> txMobility = txPhy->GetMobility ()->GetObject<MobilityModel> ();
-  SpectrumModelUid_t txSpectrumModelUid = originalTxPowerSpectrum->GetSpectrumModelUid ();
-  NS_LOG_LOGIC (" txSpectrumModelUid " << txSpectrumModelUid);
-
-  //
-  TxSpectrumModelInfoMap_t::const_iterator txInfoIteratorerator = FindAndEventuallyAddTxSpectrumModel (originalTxPowerSpectrum->GetSpectrumModel ());
-  NS_ASSERT (txInfoIteratorerator != m_txSpectrumModelInfoMap.end ());
-
-  NS_LOG_LOGIC ("converter map for TX SpectrumModel with Uid " << txInfoIteratorerator->first);
-  NS_LOG_LOGIC ("converter map size: " << txInfoIteratorerator->second.m_spectrumConverterMap.size ());
-  NS_LOG_LOGIC ("converter map first element: " << txInfoIteratorerator->second.m_spectrumConverterMap.begin ()->first);
-
-  for (RxSpectrumModelInfoMap_t::const_iterator rxInfoIterator = m_rxSpectrumModelInfoMap.begin ();
-       rxInfoIterator != m_rxSpectrumModelInfoMap.end ();
-       ++rxInfoIterator)
-    {
-      SpectrumModelUid_t rxSpectrumModelUid = rxInfoIterator->second.m_rxSpectrumModel->GetUid ();
-      NS_LOG_LOGIC (" rxSpectrumModelUids " << rxSpectrumModelUid);
-
-      Ptr <SpectrumValue> convertedTxPowerSpectrum;
-
-      if (txSpectrumModelUid == rxSpectrumModelUid)
-        {
-          NS_LOG_LOGIC ("no conversion needed");
-          convertedTxPowerSpectrum = originalTxPowerSpectrum;
-        }
-      else
-        {
-          NS_LOG_LOGIC (" converting txPowerSpectrum SpectrumModelUids" << txSpectrumModelUid << " --> " << rxSpectrumModelUid);
-          SpectrumConverterMap_t::const_iterator rxConverterIterator = txInfoIteratorerator->second.m_spectrumConverterMap.find (rxSpectrumModelUid);
-          NS_ASSERT (rxConverterIterator != txInfoIteratorerator->second.m_spectrumConverterMap.end ());
-          convertedTxPowerSpectrum = rxConverterIterator->second.Convert (originalTxPowerSpectrum);
-        }
-
-      std::list<Ptr<SpectrumPhy> >::const_iterator rxPhyIterator = rxInfoIterator->second.m_rxPhyList.begin ();
-      while (rxPhyIterator != rxInfoIterator->second.m_rxPhyList.end ())
-        {
-          NS_ASSERT_MSG ((*rxPhyIterator)->GetRxSpectrumModel ()->GetUid () == rxSpectrumModelUid,
-                         "MultiModelSpectrumChannel only supports devices that use a single RxSpectrumModel that does not change for the whole simulation");
-          
-          if ((*rxPhyIterator) != txPhy)
-            {
-              Ptr <SpectrumValue> rxPowerSpectrum;
-              Time delay;
-              Ptr<MobilityModel> receiverMobility = (*rxPhyIterator)->GetMobility ()->GetObject<MobilityModel> ();
-
-              if (txMobility && receiverMobility)
-                {
-                  if (m_PropagationLoss)
-                    {
-                      rxPowerSpectrum = m_PropagationLoss->CalcRxPowerSpectralDensity (convertedTxPowerSpectrum, txMobility, receiverMobility);
-                    }
-                  else
-                    {
-                      // rxPowerSpectrum = Copy<SpectrumValue> (convertedTxPowerSpectrum);
-                      rxPowerSpectrum = convertedTxPowerSpectrum->Copy ();
-                    }
-
-                  if (m_PropagationDelay)
-                    {
-                      delay = m_PropagationDelay->GetDelay (txMobility, receiverMobility);
-                    }
-                  else
-                    {
-                      delay = MicroSeconds (0);
-                    }
-                }
-              else
-                {
-                  // rxPowerSpectrum = Copy<SpectrumValue> (convertedTxPowerSpectrum);
-                  rxPowerSpectrum = convertedTxPowerSpectrum->Copy ();
-                  delay = MicroSeconds (0);
-                }
-
-              Ptr<PacketBurst> pktBurstCopy = p->Copy ();
-              Ptr<Object> netDevObj = (*rxPhyIterator)->GetDevice ();
-              if (netDevObj)
-                {
-                  // the receiver has a NetDevice, so we expect that it is attached to a Node
-                  uint32_t dstNode =  netDevObj->GetObject<NetDevice> ()->GetNode ()->GetId ();
-                  Simulator::ScheduleWithContext (dstNode, delay, &MultiModelSpectrumChannel::StartRx, this,
-                                                  pktBurstCopy, rxPowerSpectrum, st, duration, *rxPhyIterator);
-                }
-              else
-                {
-                  // the receiver is not attached to a NetDevice, so we cannot assume that it is attached to a node
-                  Simulator::Schedule (delay, &MultiModelSpectrumChannel::StartRx, this,
-                                       pktBurstCopy, rxPowerSpectrum, st, duration, *rxPhyIterator);
-                }
-            }         
-          ++rxPhyIterator;
-        }
-
-    }
-
-}
-
-void
-MultiModelSpectrumChannel::StartRx (Ptr<PacketBurst> pb, Ptr <SpectrumValue> rxPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver)
-{
-  NS_LOG_FUNCTION (this);
-  receiver->StartRx (pb, rxPsd, st, duration);
-}
-
-
-
-uint32_t
-MultiModelSpectrumChannel::GetNDevices (void) const
-{
-  return m_phyVector.size ();
-
-}
-
-
-Ptr<NetDevice>
-MultiModelSpectrumChannel::GetDevice (uint32_t i) const
-{
-  return m_phyVector.at (i)->GetDevice ()->GetObject<NetDevice> ();
-}
-
-
-
-void
-MultiModelSpectrumChannel::AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss)
-{
-  NS_ASSERT (m_PropagationLoss == 0);
-  m_PropagationLoss = loss;
-}
-
-void
-MultiModelSpectrumChannel::SetPropagationDelayModel (Ptr<PropagationDelayModel> delay)
-{
-  NS_ASSERT (m_PropagationDelay == 0);
-  m_PropagationDelay = delay;
-}
-
-Ptr<SpectrumPropagationLossModel>
-MultiModelSpectrumChannel::GetSpectrumPropagationLossModel (void)
-{
-  NS_LOG_FUNCTION (this);
-  return m_PropagationLoss;
-}
-
-
-} // namespace ns3
--- a/src/devices/spectrum/multi-model-spectrum-channel.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#ifndef MULTI_MODEL_SPECTRUM_CHANNEL_H
-#define MULTI_MODEL_SPECTRUM_CHANNEL_H
-
-#include <ns3/spectrum-value.h>
-#include <ns3/spectrum-converter.h>
-#include <ns3/spectrum-channel.h>
-#include <ns3/spectrum-propagation-loss-model.h>
-#include <ns3/propagation-delay-model.h>
-#include <map>
-#include <list>
-
-namespace ns3 {
-
-
-typedef std::map<SpectrumModelUid_t, SpectrumConverter> SpectrumConverterMap_t;
-
-
-class TxSpectrumModelInfo
-{
-public:
-  TxSpectrumModelInfo (Ptr<const SpectrumModel> txSpectrumModel);
-  
-  Ptr<const SpectrumModel> m_txSpectrumModel;
-  SpectrumConverterMap_t m_spectrumConverterMap;
-};
-
-typedef std::map<SpectrumModelUid_t, TxSpectrumModelInfo> TxSpectrumModelInfoMap_t;
-
-
-class RxSpectrumModelInfo
-{
-public:
-  RxSpectrumModelInfo (Ptr<const SpectrumModel> rxSpectrumModel);
-  
-  Ptr<const SpectrumModel> m_rxSpectrumModel;
-  std::list<Ptr<SpectrumPhy> > m_rxPhyList;  
-};
-
-typedef std::map<SpectrumModelUid_t, RxSpectrumModelInfo> RxSpectrumModelInfoMap_t;
-
-
-
-
-/**
- * This SpectrumChannel implementation can handle the presence of
- * SpectrumPhy instances which can use
- * different spectrum models, i.e.,  different SpectrumModel. The only
- * requirement is that every SpectrumPhy instance uses the same
- * SpectrumModel for the whole simulation.
- */
-class MultiModelSpectrumChannel : public SpectrumChannel
-{
-
-public:
-  MultiModelSpectrumChannel ();
-
-  static TypeId GetTypeId (void);
-
-  // inherited from SpectrumChannel
-  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss);
-  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay);
-  virtual void AddRx (Ptr<SpectrumPhy> phy);
-  virtual void StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> sender);
-
-
-  // inherited from Channel
-  virtual uint32_t GetNDevices (void) const;
-  virtual Ptr<NetDevice> GetDevice (uint32_t i) const;
-
-  virtual Ptr<SpectrumPropagationLossModel> GetSpectrumPropagationLossModel (void);
-
-
-protected:
-  void DoDispose ();
-
-
-
-private:
- 
-
-  /** 
-   * this method checks if m_rxSpectrumModelInfoMap contains an entry
-   * for the given TX SpectrumModel. If such entry exists, it returns
-   * an interator pointing to it. If not, it creates a new entry in
-   * m_txSpectrumMpodelInfoMap, and returns an iterator to it.
-   * 
-   * @param txSpectrumModel the TX SpectrumModel  being considered
-   * 
-   * @return an iterator pointing to the corresponding entry in m_txSpectrumModelInfoMap
-   */
-  TxSpectrumModelInfoMap_t::const_iterator FindAndEventuallyAddTxSpectrumModel (Ptr<const SpectrumModel> txSpectrumModel);
-
-
-  /** 
-   * make sure that there are SpectrumConverters from any
-   * SpectrumPhy being used for TX to the given SpectrumModel being used for RX
-   * 
-   * @param rxPhy the RXing SpectrumPhy
-   * @param rxSpectrumModel the SpectrumModel used for RX by rxPhy
-   */
-  void CheckAddRxSpectrumModel (Ptr<SpectrumPhy> rxPhy, Ptr<const SpectrumModel> rxSpectrumModel);
-
-
-
-  /**
-   * used internally to reschedule transmission after the propagation delay
-   *
-   * @param p
-   * @param rxPowerSpectrum
-   * @param duration
-   * @param receiver
-   */
-  virtual void StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver);
-
-
-
-  /**
-   * propagation delay model to be used with this channel
-   *
-   */
-  Ptr<PropagationDelayModel> m_PropagationDelay;
-
-
-  /**
-   * propagation loss model to be used with this channel
-   *
-   */
-  Ptr<SpectrumPropagationLossModel> m_PropagationLoss;
-
-
-
-  /**
-   * data structure holding, for each TX SpectrumModel,  all the
-   * converters to any RX SpectrumModel, and all the corresponding
-   * SpectrumPhy instances. 
-   * 
-   */
-  TxSpectrumModelInfoMap_t m_txSpectrumModelInfoMap;
-
-
-  /**
-   * data structure holding, for each RX spectrum model, all the
-   * corresponding SpectrumPhy instances.
-   * 
-   */
-  RxSpectrumModelInfoMap_t m_rxSpectrumModelInfoMap;
-  
-  /**
-   * this is only used to provide a straighforward implementation of
-   * GetNDevices() and GetDevice()
-   *
-   */
-  std::vector<Ptr<SpectrumPhy> > m_phyVector;
-};
-
-
-
-}
-
-
-
-#endif /* MULTI_MODEL_SPECTRUM_CHANNEL_H */
--- a/src/devices/spectrum/non-communicating-net-device.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "ns3/log.h"
-#include "ns3/queue.h"
-#include "ns3/simulator.h"
-#include "ns3/enum.h"
-#include "ns3/boolean.h"
-#include "ns3/uinteger.h"
-#include "ns3/pointer.h"
-#include "ns3/channel.h"
-#include "non-communicating-net-device.h"
-
-
-NS_LOG_COMPONENT_DEFINE ("NonCommunicatingNetDevice");
-
-
-namespace ns3 {
-
-
-
-NS_OBJECT_ENSURE_REGISTERED (NonCommunicatingNetDevice);
-
-TypeId
-NonCommunicatingNetDevice::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::NonCommunicatingNetDevice")
-    .SetParent<NetDevice> ()
-    .AddConstructor<NonCommunicatingNetDevice> ()   
-    .AddAttribute ("Phy", "The PHY layer attached to this device.",
-                   PointerValue (),
-                   MakePointerAccessor (&NonCommunicatingNetDevice::GetPhy,
-                                        &NonCommunicatingNetDevice::SetPhy),
-                   MakePointerChecker<Object> ())
-  ;
-  return tid;
-}
-
-NonCommunicatingNetDevice::NonCommunicatingNetDevice ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-NonCommunicatingNetDevice::~NonCommunicatingNetDevice ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-NonCommunicatingNetDevice::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_node = 0;
-  m_channel = 0;
-  m_phy = 0;
-  NetDevice::DoDispose ();
-}
-
-
-void
-NonCommunicatingNetDevice::SetIfIndex (const uint32_t index)
-{
-  NS_LOG_FUNCTION (index);
-  m_ifIndex = index;
-}
-
-uint32_t
-NonCommunicatingNetDevice::GetIfIndex (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_ifIndex;
-}
-
-bool
-NonCommunicatingNetDevice::SetMtu (uint16_t mtu)
-{
-  NS_LOG_FUNCTION (mtu);
-  return (mtu == 0);
-}
-
-uint16_t
-NonCommunicatingNetDevice::GetMtu (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return 0;
-}
-
-void
-NonCommunicatingNetDevice::SetAddress (Address address)
-{
-  NS_LOG_FUNCTION (this);
-}
-
-Address
-NonCommunicatingNetDevice::GetAddress (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return Address ();
-}
-
-bool
-NonCommunicatingNetDevice::IsBroadcast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-Address
-NonCommunicatingNetDevice::GetBroadcast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return Address ();
-}
-
-bool
-NonCommunicatingNetDevice::IsMulticast (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-Address
-NonCommunicatingNetDevice::GetMulticast (Ipv4Address addr) const
-{
-  NS_LOG_FUNCTION (addr);
-  return Address ();
-}
-
-Address
-NonCommunicatingNetDevice::GetMulticast (Ipv6Address addr) const
-{
-  NS_LOG_FUNCTION (addr);
-  return Address ();
-}
-
-bool
-NonCommunicatingNetDevice::IsPointToPoint (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-bool
-NonCommunicatingNetDevice::IsBridge (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-
-Ptr<Node>
-NonCommunicatingNetDevice::GetNode (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_node;
-}
-
-void
-NonCommunicatingNetDevice::SetNode (Ptr<Node> node)
-{
-  NS_LOG_FUNCTION (node);
-
-  m_node = node;
-}
-
-void
-NonCommunicatingNetDevice::SetPhy (Ptr<Object> phy)
-{
-  NS_LOG_FUNCTION (this << phy);
-  m_phy = phy;
-}
-
-
-Ptr<Object>
-NonCommunicatingNetDevice::GetPhy () const
-{
-  NS_LOG_FUNCTION (this);
-  return m_phy;
-}
-
-
-void
-NonCommunicatingNetDevice::SetChannel (Ptr<Channel> c)
-{
-  NS_LOG_FUNCTION (this << c);
-  m_channel = c;
-}
-
-Ptr<Channel>
-NonCommunicatingNetDevice::GetChannel (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_channel;
-}
-
-
-bool
-NonCommunicatingNetDevice::NeedsArp (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-bool
-NonCommunicatingNetDevice::IsLinkUp (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-void
-NonCommunicatingNetDevice::AddLinkChangeCallback (Callback<void> callback)
-{
-  NS_LOG_FUNCTION (&callback);
-}
-
-void
-NonCommunicatingNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb)
-{
-  NS_LOG_FUNCTION (&cb);
-}
-
-void
-NonCommunicatingNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb)
-{
-  NS_LOG_FUNCTION (&cb);
-}
-
-bool
-NonCommunicatingNetDevice::SupportsSendFrom () const
-{
-  NS_LOG_FUNCTION (this);
-  return false;
-}
-
-
-bool
-NonCommunicatingNetDevice::Send (Ptr<Packet> packet,const Address& dest, uint16_t protocolNumber)
-{
-  NS_LOG_FUNCTION (packet << dest << protocolNumber);
-  return false;
-}
-
-bool
-NonCommunicatingNetDevice::SendFrom (Ptr<Packet> packet, const Address& src, const Address& dest, uint16_t protocolNumber)
-{
-  NS_LOG_FUNCTION (packet << src << dest << protocolNumber);
-  return false;
-}
-
-
-} // namespace ns3
--- a/src/devices/spectrum/non-communicating-net-device.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef NON_COMMUNICATING_NET_DEVICE_H
-#define NON_COMMUNICATING_NET_DEVICE_H
-
-#include <string.h>
-#include <ns3/node.h>
-#include <ns3/address.h>
-#include <ns3/net-device.h>
-#include <ns3/callback.h>
-#include <ns3/packet.h>
-#include <ns3/traced-callback.h>
-#include <ns3/ptr.h>
-
-namespace ns3 {
-
-
-class SpectrumChannel;
-class Channel;
-class SpectrumErrorModel;
-class Queue;
-
-
-
-/**
- * This class implements a device which does not communicate, in the
- * sense that it does not interact with the above protocol stack. The
- * purpose of this NetDevice is to be used for devices such as
- * microwave ovens, waveform generators and spectrum
- * analyzers. Since the ns-3 channel API is strongly based on the presence of
- * NetDevice class instances, it is convenient to provide a NetDevice that can
- * be used with such non-communicating devices.
- */
-class NonCommunicatingNetDevice : public NetDevice
-{
-public:
-
-  static TypeId GetTypeId (void);
-
-  NonCommunicatingNetDevice ();
-  virtual ~NonCommunicatingNetDevice ();
-
-
-  /**
-   * This class doesn't talk directly with the underlying channel (a
-   * dedicated PHY class is expected to do it), however the NetDevice
-   * specification features a GetChannel() method. This method here
-   * is therefore provide to allow NonCommunicatingNetDevice::GetChannel() to have
-   * something meaningful to return.
-   *
-   * @param c the underlying channel
-   */
-  void SetChannel (Ptr<Channel> c);
-
-
-  /**
-   * Set the Phy object which is attached to this device.
-   * This object is needed so that we can set/get attributes and
-   * connect to trace sources of the PHY from the net device.
-   *
-   * @param phy the Phy object embedded within this device.
-   */
-  void SetPhy (Ptr<Object> phy);
-
-  /**
-   * @return a reference to the PHY object embedded in this NetDevice.
-   */
-  Ptr<Object> GetPhy () const;
-
-
-
-  // inherited from NetDevice
-  virtual void SetIfIndex (const uint32_t index);
-  virtual uint32_t GetIfIndex (void) const;
-  virtual Ptr<Channel> GetChannel (void) const;
-  virtual bool SetMtu (const uint16_t mtu);
-  virtual uint16_t GetMtu (void) const;
-  virtual void SetAddress (Address address);
-  virtual Address GetAddress (void) const;
-  virtual bool IsLinkUp (void) const;
-  virtual void AddLinkChangeCallback (Callback<void> callback);
-  virtual bool IsBroadcast (void) const;
-  virtual Address GetBroadcast (void) const;
-  virtual bool IsMulticast (void) const;
-  virtual bool IsPointToPoint (void) const;
-  virtual bool IsBridge (void) const;
-  virtual bool Send (Ptr<Packet> packet, const Address& dest,
-                     uint16_t protocolNumber);
-  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest,
-                         uint16_t protocolNumber);
-  virtual Ptr<Node> GetNode (void) const;
-  virtual void SetNode (Ptr<Node> node);
-  virtual bool NeedsArp (void) const;
-  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
-  virtual Address GetMulticast (Ipv4Address addr) const;
-  virtual Address GetMulticast (Ipv6Address addr) const;
-  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
-  virtual bool SupportsSendFrom (void) const;
-
-
-
-
-
-private:
-
-  virtual void DoDispose (void);
-
-  Ptr<Node>    m_node;
-  Ptr<Channel> m_channel;
-
-  uint32_t m_ifIndex;
-
-  Ptr<Object> m_phy;
-};
-
-
-} // namespace ns3
-
-#endif // NON_COMMUNICATING_NET_DEVICE_H
--- a/src/devices/spectrum/single-model-spectrum-channel.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/object.h>
-#include <ns3/simulator.h>
-#include <ns3/log.h>
-#include <ns3/packet.h>
-#include <ns3/packet-burst.h>
-#include <ns3/net-device.h>
-#include <ns3/node.h>
-#include <ns3/mobility-model.h>
-#include <ns3/spectrum-phy.h>
-#include "single-model-spectrum-channel.h"
-
-
-NS_LOG_COMPONENT_DEFINE ("SingleModelSpectrumChannel");
-
-
-namespace ns3 {
-
-
-NS_OBJECT_ENSURE_REGISTERED (SingleModelSpectrumChannel);
-
-SingleModelSpectrumChannel::SingleModelSpectrumChannel ()
-  : m_spectrumModel (0),
-    m_PropagationDelay (0),
-    m_PropagationLoss (0)
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-SingleModelSpectrumChannel::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_phyList.clear ();
-  m_spectrumModel = 0;
-  m_PropagationDelay = 0;
-  m_PropagationLoss = 0;
-  SpectrumChannel::DoDispose ();
-}
-
-TypeId
-SingleModelSpectrumChannel::GetTypeId (void)
-{
-  NS_LOG_FUNCTION_NOARGS ();
-  static TypeId tid = TypeId ("ns3::SingleModelSpectrumChannel")
-    .SetParent<SpectrumChannel> ()
-    .AddConstructor<SingleModelSpectrumChannel> ()
-  ;
-  return tid;
-}
-
-
-void
-SingleModelSpectrumChannel::AddRx (Ptr<SpectrumPhy> phy)
-{
-  NS_LOG_FUNCTION (this << phy);
-  m_phyList.push_back (phy);
-}
-
-
-void
-SingleModelSpectrumChannel::StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> txPhy)
-{
-  NS_LOG_FUNCTION (this << p << *txPsd << st << duration << txPhy);
-  NS_ASSERT_MSG (p, "NULL PacketBurst");
-  NS_ASSERT_MSG (txPsd, "NULL txPsd");
-  NS_ASSERT_MSG (txPhy, "NULL txPhy");
-
-  // just a sanity check routine. We might want to remove it to save some computational load -- one "if" statement  ;-)
-  if (m_spectrumModel == 0)
-    {
-      // first pak, record SpectrumModel
-      m_spectrumModel = txPsd->GetSpectrumModel ();
-    }
-  else
-    {
-      // all attached SpectrumPhy instances must use the same SpectrumModel
-      NS_ASSERT (*(txPsd->GetSpectrumModel ()) == *m_spectrumModel);
-    }
-
-
-  PhyList::const_iterator rxPhyIterator = m_phyList.begin ();
-
-  Ptr<MobilityModel> senderMobility = txPhy->GetMobility ()->GetObject<MobilityModel> ();
-
-  NS_ASSERT (rxPhyIterator != m_phyList.end ());
-
-  while (rxPhyIterator != m_phyList.end ())
-    {
-      if ((*rxPhyIterator) != txPhy)
-        {
-          Ptr <SpectrumValue> rxPsd;
-          Time delay;
-          Ptr<MobilityModel> receiverMobility = (*rxPhyIterator)->GetMobility ()->GetObject<MobilityModel> ();
-
-          if (senderMobility && receiverMobility)
-            {
-
-
-              if (m_PropagationLoss)
-                {
-                  rxPsd = m_PropagationLoss->CalcRxPowerSpectralDensity (txPsd, senderMobility, receiverMobility);
-                }
-              else
-                {
-                  rxPsd = txPsd;
-                }
-
-              if (m_PropagationDelay)
-                {
-                  delay = m_PropagationDelay->GetDelay (senderMobility, receiverMobility);
-                }
-              else
-                {
-                  delay = MicroSeconds (0);
-                }
-            }
-          else
-            {
-              rxPsd = txPsd;
-              delay = MicroSeconds (0);
-            }
-
-          Ptr<PacketBurst> pktBurstCopy = p->Copy ();
-          Ptr<Object> netDevObj = (*rxPhyIterator)->GetDevice ();
-          if (netDevObj)
-            {
-              // the receiver has a NetDevice, so we expect that it is attached to a Node
-              uint32_t dstNode =  netDevObj->GetObject<NetDevice> ()->GetNode ()->GetId ();
-              Simulator::ScheduleWithContext (dstNode, delay, &SingleModelSpectrumChannel::StartRx, this,
-                                              pktBurstCopy, rxPsd, st, duration, *rxPhyIterator);
-            }
-          else
-            {
-              // the receiver is not attached to a NetDevice, so we cannot assume that it is attached to a node
-              Simulator::Schedule (delay, &SingleModelSpectrumChannel::StartRx, this,
-                                   pktBurstCopy, rxPsd, st, duration, *rxPhyIterator);
-            }
-        }
-      ++rxPhyIterator;
-    }
-
-}
-
-void
-SingleModelSpectrumChannel::StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver)
-{
-  NS_LOG_FUNCTION (this << p << *rxPsd << st << duration << receiver);
-  receiver->StartRx (p, rxPsd, st, duration);
-}
-
-
-
-uint32_t
-SingleModelSpectrumChannel::GetNDevices (void) const
-{
-  NS_LOG_FUNCTION (this);
-  return m_phyList.size ();
-}
-
-
-Ptr<NetDevice>
-SingleModelSpectrumChannel::GetDevice (uint32_t i) const
-{
-  NS_LOG_FUNCTION (this << i);
-  return m_phyList.at (i)->GetDevice ()->GetObject<NetDevice> ();
-}
-
-
-
-void
-SingleModelSpectrumChannel::AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss)
-{
-  NS_LOG_FUNCTION (this << loss);
-  NS_ASSERT (m_PropagationLoss == 0);
-  m_PropagationLoss = loss;
-}
-
-void
-SingleModelSpectrumChannel::SetPropagationDelayModel (Ptr<PropagationDelayModel> delay)
-{
-  NS_LOG_FUNCTION (this << delay);
-  NS_ASSERT (m_PropagationDelay == 0);
-  m_PropagationDelay = delay;
-}
-
-
-Ptr<SpectrumPropagationLossModel> 
-SingleModelSpectrumChannel::GetSpectrumPropagationLossModel (void)
-{
-  NS_LOG_FUNCTION (this); 
-  return m_PropagationLoss;
-}
-
-
-} // namespace ns3
--- a/src/devices/spectrum/single-model-spectrum-channel.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SINGLE_MODEL_SPECTRUM_CHANNEL_H
-#define SINGLE_MODEL_SPECTRUM_CHANNEL_H
-
-
-#include <ns3/spectrum-channel.h>
-#include <ns3/spectrum-propagation-loss-model.h>
-#include <ns3/propagation-delay-model.h>
-
-namespace ns3 {
-
-
-
-/**
- * @brief SpectrumChannel implementation which handles a single spectrum model
- *
- * All SpectrumPhy layers attached to this SpectrumChannel
- */
-class SingleModelSpectrumChannel : public SpectrumChannel
-{
-
-public:
-  SingleModelSpectrumChannel ();
-
-  static TypeId GetTypeId (void);
-
-
-  // inherited from SpectrumChannel
-  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss);
-  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay);
-  virtual void AddRx (Ptr<SpectrumPhy> phy);
-  virtual void StartTx (Ptr<PacketBurst> p, 
-                        Ptr <SpectrumValue> txPsd, 
-                        SpectrumType st, 
-                        Time duration, 
-                        Ptr<SpectrumPhy> sender);
-
-
-  // inherited from Channel
-  virtual uint32_t GetNDevices (void) const;
-  virtual Ptr<NetDevice> GetDevice (uint32_t i) const;
-
-
-  typedef std::vector<Ptr<SpectrumPhy> > PhyList;
-
-  virtual Ptr<SpectrumPropagationLossModel> GetSpectrumPropagationLossModel (void);
-
-private:
-
-  virtual void DoDispose ();
-
-  /**
-   * used internally to reschedule transmission after the propagation delay
-   *
-   * @param p
-   * @param rxPowerSpectrum
-   * @param st
-   * @param duration
-   * @param receiver
-   */
-  virtual void StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver);
-
-  /**
-   * list of SpectrumPhy instances attached to
-   * the channel
-   */
-  PhyList m_phyList;
-
-  /**
-   * SpectrumModel that this channel instance
-   * is supporting
-   */
-  Ptr<const SpectrumModel> m_spectrumModel;
-
-
-  /**
-   * propagation delay model to be used with this channel
-   *
-   */
-  Ptr<PropagationDelayModel> m_PropagationDelay;
-
-
-  /**
-   * propagation loss model to be used with this channel
-   *
-   */
-  Ptr<SpectrumPropagationLossModel> m_PropagationLoss;
-
-};
-
-
-
-}
-
-
-
-#endif /* SINGLE_MODEL_SPECTRUM_CHANNEL_H */
--- a/src/devices/spectrum/spectrum-analyzer.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/spectrum-analyzer.h>
-#include <ns3/object-factory.h>
-#include <ns3/log.h>
-#include <ns3/double.h>
-#include <ns3/simulator.h>
-#include <ns3/trace-source-accessor.h>
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumAnalyzer");
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (SpectrumAnalyzer);
-
-SpectrumAnalyzer::SpectrumAnalyzer ()
-  : m_mobility (0),
-    m_netDevice (0),
-    m_channel (0),
-    m_spectrumModel (0),
-    m_sumPowerSpectralDensity (0),    
-    m_resolution (MilliSeconds (50)),
-    m_active (false)
-{
-  NS_LOG_FUNCTION (this);
-}
-
-
-
-SpectrumAnalyzer::~SpectrumAnalyzer ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-SpectrumAnalyzer::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_mobility = 0;
-  m_netDevice = 0;
-  m_channel = 0;
-  m_spectrumModel = 0;
-  m_sumPowerSpectralDensity = 0;
-  m_energySpectralDensity = 0;
-  SpectrumPhy::DoDispose ();
-}
-
-TypeId
-SpectrumAnalyzer::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::SpectrumAnalyzer")
-    .SetParent<SpectrumPhy> ()
-    .AddConstructor<SpectrumAnalyzer> ()
-    .AddAttribute ("Resolution",
-                   "the lengh of the time interval over which the power spectral "
-                   "density of incoming signals is averaged",
-                   TimeValue (MilliSeconds (1)),
-                   MakeTimeAccessor (&SpectrumAnalyzer::m_resolution),
-                   MakeTimeChecker ())
-    .AddAttribute ("NoisePowerSpectralDensity",
-                   "the power spectral density of the measuring instrument noise, in Watt/Hz. Mostly useful to make spectrograms look more similar to those obtained by real devices. Defaults to the value for thermal noise at 300K.",
-                   DoubleValue (1.38e-23*300),
-                   MakeDoubleAccessor (&SpectrumAnalyzer::m_noisePowerSpectralDensity),
-                   MakeDoubleChecker<double> ())
-    .AddTraceSource ("AveragePowerSpectralDensityReport",
-                     "Trace fired whenever a new value for the average Power Spectral Density is calculated",
-                     MakeTraceSourceAccessor (&SpectrumAnalyzer::m_averagePowerSpectralDensityReportTrace))
-  ;
-  return tid;
-}
-
-
-
-Ptr<Object>
-SpectrumAnalyzer::GetDevice ()
-{
-  return m_netDevice;
-}
-
-
-Ptr<Object>
-SpectrumAnalyzer::GetMobility ()
-{
-  return m_mobility;
-}
-
-
-Ptr<const SpectrumModel> 
-SpectrumAnalyzer::GetRxSpectrumModel () const
-{
-  return m_spectrumModel;
-}
-
-void
-SpectrumAnalyzer::SetDevice (Ptr<Object> d)
-{
-  NS_LOG_FUNCTION (this << d);
-  m_netDevice = d;
-}
-
-
-void
-SpectrumAnalyzer::SetMobility (Ptr<Object> m)
-{
-  NS_LOG_FUNCTION (this << m);
-  m_mobility = m;
-}
-
-
-void
-SpectrumAnalyzer::SetChannel (Ptr<SpectrumChannel> c)
-{
-  NS_LOG_FUNCTION (this << c);
-  m_channel = c;
-}
-
-
-
-
-void
-SpectrumAnalyzer::StartRx (Ptr<PacketBurst> pb, 
-                           Ptr <const SpectrumValue> rxPowerSpectralDensity, 
-                           SpectrumType st, 
-                           Time duration)
-{
-  NS_LOG_FUNCTION ( this << st << duration << *rxPowerSpectralDensity);
-  AddSignal (rxPowerSpectralDensity);
-  Simulator::Schedule (duration, &SpectrumAnalyzer::SubtractSignal, this, rxPowerSpectralDensity);
-}
-
-
-void
-SpectrumAnalyzer::AddSignal  (Ptr<const SpectrumValue> psd)
-{
-  NS_LOG_FUNCTION (this << *psd);
-  UpdateEnergyReceivedSoFar ();
-  (*m_sumPowerSpectralDensity) += (*psd);
-}
-
-void
-SpectrumAnalyzer::SubtractSignal  (Ptr<const SpectrumValue> psd)
-{ 
-  NS_LOG_FUNCTION (this << *psd);
-  UpdateEnergyReceivedSoFar ();
-  (*m_sumPowerSpectralDensity) -= (*psd);
-}
-
-void
-SpectrumAnalyzer::UpdateEnergyReceivedSoFar  ()
-{
-  NS_LOG_FUNCTION (this);
-  if (m_lastChangeTime < Now ())
-    {
-      (*m_energySpectralDensity) += (*m_sumPowerSpectralDensity) * ((Now () - m_lastChangeTime).GetSeconds ());
-      m_lastChangeTime = Now ();
-    }
-  else
-    {
-      NS_ASSERT (m_lastChangeTime == Now ());
-    }
-}
-
-void
-SpectrumAnalyzer::GenerateReport ()
-{
-  NS_LOG_FUNCTION (this);
-
-  UpdateEnergyReceivedSoFar ();
-  Ptr<SpectrumValue> avgPowerSpectralDensity = Create<SpectrumValue> (m_sumPowerSpectralDensity->GetSpectrumModel ());
-  (*avgPowerSpectralDensity) = (*m_energySpectralDensity) / m_resolution.GetSeconds ();  
-  (*avgPowerSpectralDensity) += m_noisePowerSpectralDensity;
-  (*m_energySpectralDensity) = 0;
-
-  NS_LOG_INFO ("generating report");
-  m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity);
-
-  *avgPowerSpectralDensity = 0;
-
-  if (m_active)
-    {
-      Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this);
-    }
-}
-
-
-
-void
-SpectrumAnalyzer::SetRxSpectrumModel (Ptr<SpectrumModel> f)
-{
-  NS_LOG_FUNCTION (this << f);
-  m_spectrumModel = f;
-  NS_ASSERT (!m_sumPowerSpectralDensity);
-  m_sumPowerSpectralDensity = Create<SpectrumValue> (f);
-  m_energySpectralDensity = Create<SpectrumValue> (f);
-  NS_ASSERT (m_sumPowerSpectralDensity);
-}
-
-
-
-
-void
-SpectrumAnalyzer::Start ()
-{
-  NS_LOG_FUNCTION (this);
-  if (!m_active)
-    {
-      NS_LOG_LOGIC ("activating");
-      m_active = true;
-      Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this);
-    }
-}
-
-
-void
-SpectrumAnalyzer::Stop ()
-{
-  m_active = false;
-}
-
-} // namespace ns3
--- a/src/devices/spectrum/spectrum-analyzer.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_ANALYZER_H
-#define SPECTRUM_ANALYZER_H
-
-
-#include <ns3/spectrum-value.h>
-#include <ns3/mobility-model.h>
-#include <ns3/packet.h>
-#include <ns3/nstime.h>
-#include <ns3/net-device.h>
-#include <ns3/spectrum-phy.h>
-#include <ns3/spectrum-channel.h>
-#include <string>
-#include <fstream>
-
-namespace ns3 {
-
-
-/**
- * Simple SpectrumPhy implemetation that averages the spectrum power
- * density of incoming transmissions to produce a spectrogram.
- *
- */
-class SpectrumAnalyzer : public SpectrumPhy
-{
-
-public:
-  SpectrumAnalyzer ();
-  virtual ~SpectrumAnalyzer ();
-
-  static TypeId GetTypeId (void);
-
-// inherited from SpectrumPhy
-  void SetChannel (Ptr<SpectrumChannel> c);
-  void SetMobility (Ptr<Object> m);
-  void SetDevice (Ptr<Object> d);
-  Ptr<Object> GetMobility ();
-  Ptr<Object> GetDevice ();
-  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
-  void StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPowerSpectralDensity, SpectrumType st, Time duration);
-
-
-  /**
-   * Set the spectrum model used by the SpectrumAnalyzer to represent incoming signals
-   *
-   * @param m 
-   */
-  void SetRxSpectrumModel (Ptr<SpectrumModel> m);
-
-  
-  /**
-   * Start the spectrum analyzer
-   *
-   */
-  virtual void Start ();
-
-  /**
-   * Stop the spectrum analyzer
-   *
-   */
-  virtual void Stop ();
-
-
-protected:
-  
-  void DoDispose ();
-
-private:  
-
-
-  Ptr<Object> m_mobility;
-  Ptr<Object> m_netDevice;
-  Ptr<SpectrumChannel> m_channel;
- 
-  virtual void GenerateReport ();
-
-  void AddSignal (Ptr<const SpectrumValue> psd);
-  void SubtractSignal  (Ptr<const SpectrumValue> psd);
-  void UpdateEnergyReceivedSoFar ();
-
-  Ptr<SpectrumModel> m_spectrumModel;
-  Ptr<SpectrumValue> m_sumPowerSpectralDensity;
-  Ptr<SpectrumValue> m_energySpectralDensity;
-  double m_noisePowerSpectralDensity;
-  Time m_resolution;
-  Time m_lastChangeTime;
-  bool m_active;
-
-  TracedCallback<Ptr<const SpectrumValue> > m_averagePowerSpectralDensityReportTrace;
-
-};
-
-
-
-
-
-
-}
-
-
-
-
-
-#endif /* SPECTRUM_ANALYZER_H */
--- a/src/devices/spectrum/spectrum-error-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "spectrum-error-model.h"
-
-#include <ns3/nstime.h>
-#include <ns3/log.h>
-
-NS_LOG_COMPONENT_DEFINE ("ShannonSpectrumErrorModel");
-
-namespace ns3 {
-
-SpectrumErrorModel::~SpectrumErrorModel ()
-{
-}
-
-void
-ShannonSpectrumErrorModel::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  SpectrumErrorModel::DoDispose ();
-}
-
-void
-ShannonSpectrumErrorModel::StartRx (Ptr<const Packet> p)
-{
-  NS_LOG_FUNCTION (this);
-  m_bytes = p->GetSize ();
-  NS_LOG_LOGIC ("bytes to deliver: " << m_bytes);
-  m_deliverableBytes = 0;
-}
-
-void
-ShannonSpectrumErrorModel::EvaluateChunk (const SpectrumValue& sinr, Time duration)
-{
-  NS_LOG_FUNCTION (this << sinr << duration);
-  SpectrumValue CapacityPerHertz = Log2 (1 + sinr);
-  double capacity = 0;
-
-  Bands::const_iterator bi = CapacityPerHertz.ConstBandsBegin ();
-  Values::const_iterator vi = CapacityPerHertz.ConstValuesBegin ();
-
-  while (bi != CapacityPerHertz.ConstBandsEnd ())
-    {
-      NS_ASSERT (vi != CapacityPerHertz.ConstValuesEnd ());
-      capacity += (bi->fh - bi->fl) * (*vi);
-      ++bi;
-      ++vi;
-    }
-  NS_ASSERT (vi == CapacityPerHertz.ConstValuesEnd ());
-  NS_LOG_LOGIC ("ChunkCapacity = " << capacity);
-  m_deliverableBytes += static_cast<uint32_t> (capacity * duration.GetSeconds () / 8);
-  NS_LOG_LOGIC ("DeliverableBytes = " << m_deliverableBytes);
-}
-
-
-bool
-ShannonSpectrumErrorModel::IsRxCorrect ()
-{
-  NS_LOG_FUNCTION (this);
-  return (m_deliverableBytes > m_bytes);
-}
-
-
-} // namespace ns3
--- a/src/devices/spectrum/spectrum-error-model.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#ifndef SPECTRUM_ERROR_MODEL_H
-#define SPECTRUM_ERROR_MODEL_H
-
-#include <ns3/spectrum-value.h>
-#include <ns3/ptr.h>
-#include <ns3/packet.h>
-#include <ns3/nstime.h>
-#include <ns3/object.h>
-
-namespace ns3 {
-
-
-
-class SpectrumErrorModel :  public Object
-{
-public:
-  virtual ~SpectrumErrorModel ();
-  virtual void StartRx (Ptr<const Packet> p) = 0;
-  virtual void EvaluateChunk (const SpectrumValue& sinr, Time duration) = 0;
-  virtual bool IsRxCorrect () = 0;
-};
-
-
-/**
- * This class implements the error model described in this paper:
- * N. Baldo and M. Miozzo, "Spectrum-aware Channel and PHY layer modeling
- * for ns3", in Proceedings of International Workshop on Network
- * Simulation Tools (NSTOOLS 2009), 19 October 2009, Pisa (Italy).
- */
-class ShannonSpectrumErrorModel : public SpectrumErrorModel
-{
-protected:
-  virtual void DoDispose ();
-
-public:
-  // inherited from SpectrumErrorModel
-  void StartRx (Ptr<const Packet> p);
-  void EvaluateChunk (const SpectrumValue& sinr, Time duration);
-  bool IsRxCorrect ();
-
-private:
-  uint32_t m_bytes;
-  uint32_t m_deliverableBytes;
-
-};
-
-
-// class EffectiveSnrSpectrumErrorModel
-// {
-// public:
-
-//   enum ModulationAndCoding {
-//     BPSK_1_2,
-//     BPSK_1_3,
-//     QPSK_1_2,
-//     QPSK_1_3,
-//     QAM16_1_2,
-//     QAM64_1_2
-//   };
-
-//   void StartRx (uint32_t bytes);
-//   void EvaluateChunk (const SpectrumValue& sinr, Time duration);
-//   bool IsRxCorrect ();
-
-// protected:
-//   uint32_t m_bytes;
-//   uint32_t m_deliverableBytes;
-
-// };
-
-
-
-} // namespace ns3
-
-
-
-#endif /* SPECTRUM_ERROR_MODEL_H */
--- a/src/devices/spectrum/spectrum-interference-test.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/object.h>
-#include <ns3/spectrum-interference.h>
-#include <ns3/spectrum-error-model.h>
-#include <ns3/log.h>
-#include <ns3/test.h>
-#include <ns3/simulator.h>
-#include <ns3/packet.h>
-#include <ns3/ptr.h>
-#include <iostream>
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumInterferenceTest");
-
-namespace ns3 {
-
-
-
-
-class SpectrumInterferenceTestCase : public TestCase
-{
-public:
-  SpectrumInterferenceTestCase (Ptr<SpectrumValue> s, uint32_t txBytes, bool rxCorrect, std::string name);
-  virtual ~SpectrumInterferenceTestCase ();
-  virtual void DoRun (void);
-  void RetrieveTestResult (SpectrumInterference* si);
-
-private:
-  Ptr<SpectrumValue> m_s;
-  uint32_t m_txBytes;
-  uint32_t m_rxCorrectKnownOutcome;
-  bool m_error;
-  Ptr<const SpectrumModel> m_mySpectrumModel;
-};
-
-
-
-SpectrumInterferenceTestCase::SpectrumInterferenceTestCase (Ptr<SpectrumValue> s, uint32_t txBytes, bool rxCorrect, std::string name)
-  : TestCase (name),
-    m_s (s),
-    m_txBytes (txBytes),
-    m_rxCorrectKnownOutcome (rxCorrect),
-    m_mySpectrumModel (s->GetSpectrumModel ())
-{
-}
-
-SpectrumInterferenceTestCase::~SpectrumInterferenceTestCase ()
-{
-}
-
-
-
-void
-SpectrumInterferenceTestCase::DoRun (void)
-{
-  Ptr<SpectrumValue> n = Create<SpectrumValue> (m_mySpectrumModel);
-  Ptr<SpectrumValue> i1 = Create<SpectrumValue> (m_mySpectrumModel);
-  Ptr<SpectrumValue> i2 = Create<SpectrumValue> (m_mySpectrumModel);
-  Ptr<SpectrumValue> i3 = Create<SpectrumValue> (m_mySpectrumModel);
-  Ptr<SpectrumValue> i4 = Create<SpectrumValue> (m_mySpectrumModel);
-
-
-  (*n)[0] = 5.000000000000e-19;
-  (*n)[1] = 4.545454545455e-19;
-
-  (*i1)[0] = 5.000000000000e-18;
-  (*i2)[0] = 5.000000000000e-16;
-  (*i3)[0] = 1.581138830084e-16;
-  (*i4)[0] = 7.924465962306e-17;
-  (*i1)[1] = 1.437398936440e-18;
-  (*i2)[1] = 5.722388235428e-16;
-  (*i3)[1] = 7.204059965732e-17;
-  (*i4)[1] = 5.722388235428e-17;
-
-
-  SpectrumInterference si;
-  si.SetErrorModel (CreateObject<ShannonSpectrumErrorModel> ());
-  si.SetNoisePowerSpectralDensity (n);
-
-  Time ts  = Seconds (1);
-  Time ds  = Seconds (1);
-  Time ti1 = Seconds (0);
-  Time di1 = Seconds (3);
-  Time ti2 = Seconds (0.7);
-  Time di2 = Seconds (1);
-  Time ti3 = Seconds (1.2);
-  Time di3 = Seconds (1);
-  Time ti4 = Seconds (1.5);
-  Time di4 = Seconds (0.1);
-
-  Simulator::Schedule (ts,  &SpectrumInterference::AddSignal, &si, m_s,  ds);
-  Simulator::Schedule (ti1, &SpectrumInterference::AddSignal, &si, i1, di1);
-  Simulator::Schedule (ti2, &SpectrumInterference::AddSignal, &si, i2, di2);
-  Simulator::Schedule (ti3, &SpectrumInterference::AddSignal, &si, i3, di3);
-  Simulator::Schedule (ti4, &SpectrumInterference::AddSignal, &si, i4, di4);
-
-  Ptr<Packet> p = Create<Packet> (m_txBytes);
-  Simulator::Schedule (ts,  &SpectrumInterference::StartRx, &si, p, m_s);
-  Simulator::Schedule (ts + ds,  &SpectrumInterferenceTestCase::RetrieveTestResult, this, &si);
-
-  Simulator::Run ();
-  // the above will return and after RetrieveTestResults have
-  // been called and after all signals have expired
-  Simulator::Destroy ();
-}
-
-
-
-void
-SpectrumInterferenceTestCase::RetrieveTestResult (SpectrumInterference* si)
-{
-
-  bool rxOk = si->EndRx ();
-  m_error =  (m_rxCorrectKnownOutcome != rxOk);
-
-  std::ostringstream actualStream;
-  actualStream << rxOk;
-  std::ostringstream limitStream;
-  limitStream << m_rxCorrectKnownOutcome;
-
-  NS_LOG_LOGIC ("actual=" << actualStream.str () << " limit=" << limitStream.str ());
-
-  if (m_error)
-    {
-      UpdateErrorStatus (m_error);
-      ReportTestFailure (std::string ("wrong result"),
-                         actualStream.str (),
-                         limitStream.str (),
-                         std::string ("no message"),
-                         __FILE__, __LINE__);
-    }
-
-}
-
-
-
-class SpectrumInterferenceTestSuite : public TestSuite
-{
-public:
-  SpectrumInterferenceTestSuite ();
-};
-
-SpectrumInterferenceTestSuite::SpectrumInterferenceTestSuite ()
-  : TestSuite ("spectrum-interference", UNIT)
-{
-
-  NS_LOG_INFO ("creating SpectrumInterferenceTestSuite");
-
-  Ptr<const SpectrumModel> m;
-
-  Bands bands;
-  struct BandInfo bi;
-
-  bi.fl = 2.400e9;
-  bi.fc = 2.410e9;
-  bi.fh = 2.420e9;
-  bands.push_back (bi);
-
-  bi.fl = 2.420e9;
-  bi.fc = 2.431e9;
-  bi.fh = 2.442e9;
-  bands.push_back (bi);
-
-  m = Create<SpectrumModel> (bands);
-
-
-  double b; // max deliverable bytes
-
-  const double e = 1e-5; // max tolerated relative error for
-                         // deliverable bytes
-
-  // Power Spectral Density of the signal of interest  = [-46 -48] dBm;
-  Ptr<SpectrumValue> s1  = Create<SpectrumValue> (m);
-  (*s1)[0] = 1.255943215755e-15;
-  (*s1)[1] = 7.204059965732e-16;
-  b = 10067205.5632012;
-  AddTestCase (new SpectrumInterferenceTestCase (s1,   1, 1,            "sdBm  = [-46 -48]  tx bytes: 1"));
-  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * 0.5 + 0.5), 1,   "sdBm  = [-46 -48]  tx bytes: b*0.5"));
-  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * (1 - e) + 0.5), 1, "sdBm  = [-46 -48]  tx bytes: b*(1-e)"));
-  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * (1 + e) + 0.5), 0, "sdBm  = [-46 -48]  tx bytes: b*(1+e)"));
-  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t>(b * 1.5 + 0.5), 0,   "sdBm  = [-46 -48]  tx bytes: b*1.5"));
-  AddTestCase (new SpectrumInterferenceTestCase (s1, 0xffffffff, 0,     "sdBm  = [-46 -48]  tx bytes: 2^32-1"));
-
-  // Power Spectral Density of the signal of interest  =  [-63 -61] dBm;
-  Ptr<SpectrumValue> s2  = Create<SpectrumValue> (m);
-  (*s2)[0] = 2.505936168136e-17;
-  (*s2)[1] = 3.610582885110e-17;
-  b = 882401.591840728;
-  AddTestCase (new SpectrumInterferenceTestCase (s2,   1, 1,            "sdBm  = [-63 -61]  tx bytes: 1"));
-  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * 0.5 + 0.5), 1,   "sdBm  = [-63 -61]  tx bytes: b*0.5"));
-  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * (1 - e) + 0.5), 1, "sdBm  = [-63 -61]  tx bytes: b*(1-e)"));
-  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * (1 + e) + 0.5), 0, "sdBm  = [-63 -61]  tx bytes: b*(1+e)"));
-  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * 1.5 + 0.5), 0,   "sdBm  = [-63 -61]  tx bytes: b*1.5"));
-  AddTestCase (new SpectrumInterferenceTestCase (s2, 0xffffffff, 0,     "sdBm  = [-63 -61]  tx bytes: 2^32-1"));
-
-}
-
-static SpectrumInterferenceTestSuite spectrumInterferenceTestSuite;
-
-} // namespace ns3
--- a/src/devices/spectrum/spectrum-interference.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include "spectrum-interference.h"
-#include "spectrum-error-model.h"
-
-#include <ns3/simulator.h>
-#include <ns3/log.h>
-
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumInterference");
-
-namespace ns3 {
-
-
-SpectrumInterference::SpectrumInterference ()
-  : m_receiving (false),
-    m_rxSignal (0),
-    m_allSignals (0),
-    m_noise (0),
-    m_errorModel (0)
-{
-  NS_LOG_FUNCTION (this);
-}
-
-SpectrumInterference::~SpectrumInterference ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-SpectrumInterference::DoDispose ()
-{
-  NS_LOG_FUNCTION (this);
-  m_rxSignal = 0;
-  m_allSignals = 0;
-  m_noise = 0;
-  m_errorModel = 0;  
-  Object::DoDispose ();
-}
-
-void
-SpectrumInterference::StartRx (Ptr<const Packet> p, Ptr<const SpectrumValue> rxPsd)
-{ 
-  NS_LOG_FUNCTION (this << p << *rxPsd);
-  m_rxSignal = rxPsd;
-  m_lastChangeTime = Now ();
-  m_receiving = true;
-  m_errorModel->StartRx (p);
-}
-
-
-bool
-SpectrumInterference::EndRx ()
-{
-  NS_LOG_FUNCTION (this);
-  ConditionallyEvaluateChunk ();
-  m_receiving = false;
-  return m_errorModel->IsRxCorrect ();
-}
-
-
-void
-SpectrumInterference::AddSignal (Ptr<const SpectrumValue> spd, const Time duration)
-{
-  NS_LOG_FUNCTION (this << *spd << duration);
-  DoAddSignal (spd);
-  Simulator::Schedule (duration, &SpectrumInterference::DoSubtractSignal, this, spd);
-}
-
-
-void
-SpectrumInterference::DoAddSignal  (Ptr<const SpectrumValue> spd)
-{ 
-  NS_LOG_FUNCTION (this << *spd);
-  ConditionallyEvaluateChunk ();
-  (*m_allSignals) += (*spd);
-  m_lastChangeTime = Now ();
-}
-
-void
-SpectrumInterference::DoSubtractSignal  (Ptr<const SpectrumValue> spd)
-{ 
-  NS_LOG_FUNCTION (this << *spd);
-  ConditionallyEvaluateChunk ();
-  (*m_allSignals) -= (*spd);
-  m_lastChangeTime = Now ();
-}
-
-
-void
-SpectrumInterference::ConditionallyEvaluateChunk ()
-{
-  NS_LOG_FUNCTION (this);
-  if (m_receiving && (Now () > m_lastChangeTime))
-    {
-      SpectrumValue sinr = (*m_rxSignal) / ((*m_allSignals) - (*m_rxSignal) + (*m_noise));
-      Time duration = Now () - m_lastChangeTime;
-      m_errorModel->EvaluateChunk (sinr, duration);
-    }
-}
-
-void
-SpectrumInterference::SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd)
-{
-  NS_LOG_FUNCTION (this << noisePsd);
-  m_noise = noisePsd;
-  // we can initialize m_allSignal only now, because earlier we
-  // didn't know what spectrum model was going to be used.
-  // we'll now create a zeroed SpectrumValue using the same
-  // SpectrumModel which is being specified for the noise.
-  m_allSignals = Create<SpectrumValue> (noisePsd->GetSpectrumModel ());
-}
-
-void
-SpectrumInterference::SetErrorModel (Ptr<SpectrumErrorModel> e)
-{
-  NS_LOG_FUNCTION (this << e);
-  m_errorModel = e;
-}
-
-
-
-
-} // namespace ns3
-
-
--- a/src/devices/spectrum/spectrum-interference.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#ifndef SPECTRUM_INTERFERENCE_H
-#define SPECTRUM_INTERFERENCE_H
-
-#include <ns3/object.h>
-#include <ns3/packet.h>
-#include <ns3/nstime.h>
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-
-
-class SpectrumErrorModel;
-
-
-
-/**
- * This class implements a gaussian interference model, i.e., all
- * incoming signals are added to the total interference.
- *
- */
-class SpectrumInterference : public Object
-{
-public:
-  SpectrumInterference ();
-  virtual ~SpectrumInterference ();
-
-  /**
-   * set the SpectrumErrorModel to be used.
-   *
-   * @param e
-   */
-  void SetErrorModel (Ptr<SpectrumErrorModel> e);
-
-  /**
-   * notify that the PHY is starting a RX attempt
-   *
-   * @param p the packet corresponding to the signal being RX
-   * @param rxPsd the power spectral density of the signal being RX
-   */
-  void StartRx (Ptr<const Packet> p, Ptr<const SpectrumValue> rxPsd);
-
-
-  /**
-   * notify that the RX attempt has ended. The receiving PHY must call
-   * this method upon RX end in order to:
-   * 1) know if RX was successful or not
-   * 2) free up resources that might eventually be used for the
-   * calculation of interference. Note that for this reason this
-   * method must also be called when RX is aborted.
-   *
-   *
-   * @return true if RX was successful, false otherwise
-   */
-  bool EndRx ();
-
-
-  /**
-   * notify that a new signal is being perceived in the medium. This
-   * method is to be called for all incoming signal, regardless of
-   * wether they're useful signals or interferers.
-   *
-   * @param spd the power spectral density of the new signal
-   * @param duration the duration of the new signal
-   */
-  void AddSignal (Ptr<const SpectrumValue> spd, const Time duration);
-
-
-  /**
-   *
-   * @param noisePsd the Noise Power Spectral Density in power units
-   * (Watt, Pascal...) per Hz.
-   */
-  void SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd);
-
-
-protected:
-  
-  void DoDispose ();
-
-private:
-  void ConditionallyEvaluateChunk ();
-  void DoAddSignal  (Ptr<const SpectrumValue> spd);
-  void DoSubtractSignal  (Ptr<const SpectrumValue> spd);
-
-
-
-  bool m_receiving;
-
-  Ptr<const SpectrumValue> m_rxSignal; /**< stores the power spectral density of
-                                  * the signal whose RX is being
-                                  * attempted
-                                  */
-
-  Ptr<SpectrumValue> m_allSignals; /**< stores the spectral
-                                    * power density of the sum of incoming signals;
-                                    * does not include noise, includes the SPD of the signal being RX
-                                    */
-
-  Ptr<const SpectrumValue> m_noise;
-
-  Time m_lastChangeTime;     /**< the time of the last change in
-                                m_TotalPower */
-
-  Ptr<SpectrumErrorModel> m_errorModel;
-
-
-
-};
-
-
-
-} // namespace ns3
-
-
-
-
-
-#endif /* SPECTRUM_INTERFERENCE_H */
--- a/src/devices/spectrum/spectrum-model-300kHz-300GHz-log.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include <ns3/spectrum-model-300kHz-300GHz-log.h>
-
-namespace ns3 {
-
-
-Ptr<SpectrumModel> SpectrumModel300Khz300GhzLog;
-
-
-
-class static_SpectrumModel300Khz300GhzLog_initializer
-{
-public:
-  static_SpectrumModel300Khz300GhzLog_initializer ()
-  {
-
-    std::vector<double> freqs;
-    for (double f = 3e5; f < 3e11; f = f * 2)
-      {
-        freqs.push_back (f);
-      }
-    SpectrumModel300Khz300GhzLog = Create<SpectrumModel> (freqs);
-  }
-
-} static_SpectrumModel300Khz300GhzLog_initializer_instance;
-
-
-
-
-
-}
--- a/src/devices/spectrum/spectrum-model-300kHz-300GHz-log.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef FREQS_300KHZ_300GHZ_LOG_H
-#define FREQS_300KHZ_300GHZ_LOG_H
-
-
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-extern Ptr<SpectrumModel> SpectrumModel300Khz300GhzLog;
-
-
-}
-
-
-
-
-#endif /*  FREQS_300KHZ_300GHZ_LOG_H */
--- a/src/devices/spectrum/spectrum-model-ism2400MHz-res1MHz.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
-
-namespace ns3 {
-
-
-Ptr<SpectrumModel> SpectrumModelIsm2400MhzRes1Mhz;
-
-
-
-class static_SpectrumModelIsm2400MhzRes1Mhz_initializer
-{
-public:
-  static_SpectrumModelIsm2400MhzRes1Mhz_initializer ()
-  {
-
-    std::vector<double> freqs;
-    for (int i = 0; i < 100; ++i)
-      {
-        freqs.push_back ((i + 2400) * 1e6);
-      }
-
-
-    SpectrumModelIsm2400MhzRes1Mhz = Create<SpectrumModel> (freqs);
-  }
-
-} static_SpectrumModelIsm2400MhzRes1Mhz_initializer_instance;
-
-
-
-
-
-}
--- a/src/devices/spectrum/spectrum-model-ism2400MHz-res1MHz.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef FREQS_ISM2400MHZ_RES1MHZ_H
-#define FREQS_ISM2400MHZ_RES1MHZ_H
-
-
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-extern Ptr<SpectrumModel> SpectrumModelIsm2400MhzRes1Mhz;
-
-
-}
-
-
-
-
-
-#endif /* FREQS_ISM2400MHZ_RES1MHZ_H */
--- a/src/devices/spectrum/waveform-generator.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include <ns3/waveform-generator.h>
-#include <ns3/object-factory.h>
-#include <ns3/log.h>
-#include <ns3/simulator.h>
-#include <ns3/double.h>
-#include <ns3/packet-burst.h>
-
-
-NS_LOG_COMPONENT_DEFINE ("WaveformGenerator");
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (WaveformGenerator);
-
-WaveformGenerator::WaveformGenerator ()
-  : m_mobility (0),
-    m_netDevice (0),
-    m_channel (0),
-    m_txPowerSpectralDensity (0),
-    m_startTime (Seconds (0)),
-    m_active (false)
-{
-
-}
-
-
-WaveformGenerator::~WaveformGenerator ()
-{
-
-}
-
-
-void
-WaveformGenerator::DoDispose (void)
-{
-  NS_LOG_FUNCTION (this);
-  m_channel = 0;
-  m_netDevice = 0;
-  m_mobility = 0;
-}
-
-TypeId
-WaveformGenerator::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::WaveformGenerator")
-    .SetParent<SpectrumPhy> ()
-    .AddConstructor<WaveformGenerator> ()
-    .AddAttribute ("Period",
-                   "the period (=1/frequency)",
-                   TimeValue (Seconds (1.0)),
-                   MakeTimeAccessor (&WaveformGenerator::SetPeriod,
-                                     &WaveformGenerator::GetPeriod),
-                   MakeTimeChecker ())
-    .AddAttribute ("DutyCycle",
-                   "the duty cycle of the generator, i.e., the fraction of the period that is occupied by a signal",
-                   DoubleValue (0.5),
-                   MakeDoubleAccessor (&WaveformGenerator::SetDutyCycle,
-                                       &WaveformGenerator::GetDutyCycle),
-                   MakeDoubleChecker<double> ())
-    .AddTraceSource ("TxStart",
-                     "Trace fired when a new transmission is started",
-                     MakeTraceSourceAccessor (&WaveformGenerator::m_phyTxStartTrace))
-    .AddTraceSource ("TxEnd",
-                     "Trace fired when a previosuly started transmission is finished",
-                     MakeTraceSourceAccessor (&WaveformGenerator::m_phyTxEndTrace))
-    ;
-  return tid;
-}
-
-
-
-Ptr<Object>
-WaveformGenerator::GetDevice ()
-{
-  return m_netDevice;
-}
-
-
-Ptr<Object>
-WaveformGenerator::GetMobility ()
-{
-  return m_mobility;
-}
-
-
-Ptr<const SpectrumModel> 
-WaveformGenerator::GetRxSpectrumModel () const
-{
-  // this device is not interested in RX
-  return 0;
-}
-
-void
-WaveformGenerator::SetDevice (Ptr<Object> d)
-{
-  m_netDevice = d;
-}
-
-
-void
-WaveformGenerator::SetMobility (Ptr<Object> m)
-{
-  m_mobility = m;
-}
-
-
-void
-WaveformGenerator::SetChannel (Ptr<SpectrumChannel> c)
-{
-  NS_LOG_FUNCTION_NOARGS ();
-  m_channel = c;
-}
-
-
-
-void
-WaveformGenerator::StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration)
-{
-  NS_LOG_FUNCTION (pb << rxPowerSpectrum << duration);
-}
-
-
-SpectrumType
-WaveformGenerator::GetSpectrumType ()
-{
-  static SpectrumType st = SpectrumTypeFactory::Create ("GenericWaveform");
-  return st;
-}
-
-void
-WaveformGenerator::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
-{
-  NS_LOG_FUNCTION (this << *txPsd);
-  m_txPowerSpectralDensity = txPsd;
-}
-
-
-
-void
-WaveformGenerator::SetPeriod (Time period)
-{
-  m_period = period;
-}
-
-Time
-WaveformGenerator::GetPeriod () const
-{
-  return m_period;
-}
-
-
-
-void
-WaveformGenerator::SetDutyCycle (double dutyCycle)
-{
-  m_dutyCycle = Scalar (dutyCycle);
-}
-
-double WaveformGenerator::GetDutyCycle () const
-{
-  return m_dutyCycle.GetDouble ();
-}
-
-
-
-void
-WaveformGenerator::GenerateWaveform ()
-{
-  NS_LOG_FUNCTION (this);
-
-  Ptr<PacketBurst> pb = Create<PacketBurst> ();
-  Time duration = m_period * m_dutyCycle;
-  
-  NS_LOG_LOGIC ("generating waveform : " << *m_txPowerSpectralDensity);
-  m_phyTxStartTrace (0);
-  m_channel->StartTx (pb, m_txPowerSpectralDensity, GetSpectrumType (), duration, GetObject<SpectrumPhy> ());
-  
-  if (m_active)
-    {
-      NS_LOG_LOGIC ("scheduling next waveform");
-      Simulator::Schedule (m_period, &WaveformGenerator::GenerateWaveform, this);
-    }
-}
-
-
-void
-WaveformGenerator::Start ()
-{
-  NS_LOG_FUNCTION (this);
-  if (!m_active)
-    {
-      NS_LOG_LOGIC ("generator was not active, now starting");
-      m_active = true;
-      m_startTime = Now ();
-      Simulator::ScheduleNow (&WaveformGenerator::GenerateWaveform, this);
-    }
-}
-
-
-void
-WaveformGenerator::Stop ()
-{
-  NS_LOG_FUNCTION (this);  
-  m_active = false;
-}
-
-
-} // namespace ns3
--- a/src/devices/spectrum/waveform-generator.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef WAVEFORM_GENERATOR_H
-#define WAVEFORM_GENERATOR_H
-
-
-#include <ns3/spectrum-value.h>
-#include <ns3/mobility-model.h>
-#include <ns3/packet.h>
-#include <ns3/nstime.h>
-#include <ns3/net-device.h>
-#include <ns3/spectrum-phy.h>
-#include <ns3/spectrum-channel.h>
-#include <ns3/spectrum-type.h>
-#include <ns3/trace-source-accessor.h>
-
-namespace ns3 {
-
-
-
-/**
- * Simple SpectrumPhy implementation that sends customizable waveform.
- * The generated waveforms have a given Spectrum Power Density and
- * duration (set with the SetResolution()) . The generator activates
- * and deactivates periodically with a given period and with a duty
- * cycle of 1/2.
- */
-class WaveformGenerator : public SpectrumPhy
-{
-
-public:
-  WaveformGenerator ();
-  virtual ~WaveformGenerator ();
-
-  static TypeId GetTypeId (void);
-
-  // inherited from SpectrumPhy
-  void SetChannel (Ptr<SpectrumChannel> c);
-  void SetMobility (Ptr<Object> m);
-  void SetDevice (Ptr<Object> d);
-  Ptr<Object> GetMobility ();
-  Ptr<Object> GetDevice ();
-  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
-  void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration); 
-
-
-  /**
-   * Set the Power Spectral Density used for outgoing waveforms
-   *
-   * @param txs the Power Spectral Density
-   */
-  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txs);
-
-
-  /**
-   * Get the SpectrumType used by this PHY
-   *
-   * @return
-   */
-  SpectrumType GetSpectrumType ();
-
-
-
-  /**
-   * Set the period according to which the WaveformGenerator switches
-   * on and off
-   *
-   * @param period
-   */
-  void SetPeriod (Time period);
-
-
-  /** 
-   * 
-   * @return the value of the period according to which the WaveformGenerator switches
-   * on and off
-   */
-  Time GetPeriod () const;
-  
-
-  /** 
-   * 
-   * @param value the value of the duty cycle
-   */
-  void SetDutyCycle (double value);
-
-  /** 
-   *
-   * @return the value of the duty cycle
-   */
-  double GetDutyCycle () const;
-
-
-
-
-  /**
-   * Start the waveform generator
-   *
-   */
-  virtual void Start ();
-
-  /**
-   * Stop the waveform generator
-   *
-   */
-  virtual void Stop ();
-
-
-private:
-
-  virtual void DoDispose (void);
-
-  Ptr<Object> m_mobility;
-  Ptr<Object> m_netDevice;
-  Ptr<SpectrumChannel> m_channel;
-
-  virtual void GenerateWaveform ();
-
-  Ptr<SpectrumValue> m_txPowerSpectralDensity;
-  Time   m_period;
-  Scalar m_dutyCycle;
-  Time m_startTime;
-  bool m_active;
-
-  TracedCallback<Ptr<const Packet> > m_phyTxStartTrace;
-  TracedCallback<Ptr<const Packet> > m_phyTxEndTrace;
-};
-
-
-
-
-
-
-} // namespace ns3
-
-
-
-
-
-#endif /* WAVEFORM_GENERATOR_H */
--- a/src/devices/spectrum/wifi-spectrum-value-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#include "wifi-spectrum-value-helper.h"
-
-namespace ns3 {
-
-  
-Ptr<SpectrumModel> g_WifiSpectrumModel5Mhz;
-
-WifiSpectrumValueHelper::~WifiSpectrumValueHelper ()
-{
-}
-
-WifiSpectrumValue5MhzFactory::~WifiSpectrumValue5MhzFactory ()
-{
-}
-
-class WifiSpectrumModel5MhzInitializer
-{
-public:
-  WifiSpectrumModel5MhzInitializer ()
-  {
-    Bands bands;
-    for (int i = -4; i < 13+7; i++)
-      {
-        BandInfo bi;
-        bi.fl = 2407.0e6 + i * 5.0e6;
-        bi.fh = 2407.0e6 + (i+1) * 5.0e6;
-        bi.fc = (bi.fl +  bi.fh)/2;
-        bands.push_back (bi);
-      }
-    g_WifiSpectrumModel5Mhz = Create<SpectrumModel> (bands);
-  }
-} g_WifiSpectrumModel5MhzInitializerInstance;
-
-
-
-Ptr<SpectrumValue> 
-WifiSpectrumValue5MhzFactory::CreateConstant (double v)
-{  
-  Ptr<SpectrumValue> c = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
-  (*c) = v;
-  return c;
-}
-
-
-Ptr<SpectrumValue> 
-WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity (double txPower, uint32_t channel)
-{  
-  Ptr<SpectrumValue> txPsd = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
-
-  // since the spectrum model has a resolution of 5 MHz, we model
-  // the transmitted signal with a constant density over a 20MHz
-  // bandwidth centered on the center frequency of the channel. The
-  // transmission power outside the transmission power density is
-  // calculated considering the transmit spectrum mask, see IEEE
-  // Std. 802.11-2007, Annex I
-
-  double txPowerDensity = txPower / 20e6; 
-
-  NS_ASSERT(channel >= 1);
-  NS_ASSERT(channel <= 13);
-
-  (*txPsd)[channel - 1] = txPowerDensity * 1e-4;      // -40dB
-  (*txPsd)[channel]     = txPowerDensity * 1e-4;      // -40dB
-  (*txPsd)[channel + 1] = txPowerDensity * 0.0015849; // -28dB
-  (*txPsd)[channel + 2] = txPowerDensity * 0.0015849; // -28dB
-  (*txPsd)[channel + 3] = txPowerDensity;
-  (*txPsd)[channel + 4] = txPowerDensity;
-  (*txPsd)[channel + 5] = txPowerDensity;
-  (*txPsd)[channel + 6] = txPowerDensity;
-  (*txPsd)[channel + 7] = txPowerDensity * 0.0015849; // -28dB
-  (*txPsd)[channel + 8] = txPowerDensity * 0.0015849; // -28dB
-  (*txPsd)[channel + 9] = txPowerDensity * 1e-4;      // -40dB
-  (*txPsd)[channel + 10] = txPowerDensity * 1e-4;      // -40dB
-
-  return txPsd;
-}
-
-
-Ptr<SpectrumValue> 
-WifiSpectrumValue5MhzFactory::CreateRfFilter (uint32_t channel)
-{  
-  Ptr<SpectrumValue> rf = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
-
-  NS_ASSERT(channel >= 1);
-  NS_ASSERT(channel <= 13);
-
-  (*rf)[channel - 1] = 1;
-  (*rf)[channel    ] = 1;
-  (*rf)[channel + 1] = 1;
-  (*rf)[channel + 2] = 1;
-
-  return rf;
-}
-
-
-} //namespace ns3
--- a/src/devices/spectrum/wifi-spectrum-value-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef WIFI_SPECTRUM_VALUE_HELPER_H
-#define WIFI_SPECTRUM_VALUE_HELPER_H
-
-
-#include <ns3/spectrum-value.h>
-
-namespace ns3 {
-
-
-
-/** 
- * this abstract class defines the interface for interacting with all WifiSpectrumValue implementations.
- *
- */
-class WifiSpectrumValueHelper 
-{
-public:
-  virtual ~WifiSpectrumValueHelper ();
-  /*
-   *
-   * @param value the constant value
-   * 
-   * @return a Ptr to a newly created SpectrumValue instance which
-   * has a constant value for all frequencies
-   */
-  virtual Ptr<SpectrumValue> CreateConstant (double psd) = 0;
-
-  /*
-   *
-   * @param txPower the total TX power in W
-   * @param channel the number of the channel 
-   * 
-   * @return a Ptr to a newly created SpectrumValue instance which
-   * represents the TX Power Spectral Density  of a wifi device
-   * corresponding to the provided parameters
-   */
-  virtual Ptr<SpectrumValue> CreateTxPowerSpectralDensity (double txPower, uint32_t channel) = 0;
-
-  /*
-   *
-   * @param channel the number of the channel 
-   * 
-   * @return a Ptr to a newly created SpectrumValue instance which
-   * represents the frequency response of the RF filter which is used
-   * by a wifi device to receive signals when tuned to a particular channel
-   */
-  virtual Ptr<SpectrumValue> CreateRfFilter (uint32_t channel) = 0;
-  
-};
-
-
-
-/** 
- * Implements WifiSpectrumValue for the 2.4 GHz ISM band only, with a
- * 5 MHz spectrum resolution.
- *
- */
-class WifiSpectrumValue5MhzFactory
-{
-public:
-  virtual ~WifiSpectrumValue5MhzFactory ();
-  // inherited from WifiSpectrumValue
-  virtual Ptr<SpectrumValue> CreateConstant (double psd);
-  virtual Ptr<SpectrumValue> CreateTxPowerSpectralDensity (double txPower, uint32_t channel);
-  virtual Ptr<SpectrumValue> CreateRfFilter (uint32_t channel);
-
-};
-
-
-  
-} //namespace ns3
-
-
-
-#endif /*  WIFI_SPECTRUM_VALUE_HELPER_H */
--- a/src/devices/spectrum/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-
-def build(bld):
-
-    module = bld.create_ns3_module('spectrum', ['core', 'node'])
-    module.source = [
-        'single-model-spectrum-channel.cc',
-        'multi-model-spectrum-channel.cc',
-        'spectrum-interference.cc',
-        'spectrum-error-model.cc',
-        'spectrum-interference-test.cc',
-        'spectrum-model-ism2400MHz-res1MHz.cc',
-        'spectrum-model-300kHz-300GHz-log.cc', 
-        'wifi-spectrum-value-helper.cc',
-        'waveform-generator.cc',
-        'spectrum-analyzer.cc',
-        'aloha-noack-mac-header.cc',
-        'aloha-noack-net-device.cc',
-        'half-duplex-ideal-phy.cc',
-        'non-communicating-net-device.cc',
-        'microwave-oven-spectrum-value-helper.cc',
-        ]
-    
-    headers = bld.new_task_gen('ns3header')
-    headers.module = 'spectrum'
-    headers.source = [
-        'single-model-spectrum-channel.h', 
-        'multi-model-spectrum-channel.h',
-        'spectrum-interference.h',
-        'spectrum-error-model.h',
-        'spectrum-model-ism2400MHz-res1MHz.h',
-        'spectrum-model-300kHz-300GHz-log.h',
-        'wifi-spectrum-value-helper.h',
-        'waveform-generator.h',       
-        'spectrum-analyzer.h',
-        'aloha-noack-mac-header.h',
-        'aloha-noack-net-device.h',
-        'half-duplex-ideal-phy.h',
-        'non-communicating-net-device.h',
-        'microwave-oven-spectrum-value-helper.h',
-        ]
-
-
--- a/src/devices/uan/helper/uan-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/devices/uan/helper/uan-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -142,7 +142,7 @@
    * \param deviceid the id of the device to generate ascii output for.
    *
    * Enable ascii output on the specified deviceid within the
-   * specified nodeid if it is of type ns3::WifiNetDevice and dump
+   * specified nodeid if it is of type ns3::UanNetDevice and dump
    * that to the specified stdc++ output stream.
    */
   static void EnableAscii (std::ostream &os, uint32_t nodeid, uint32_t deviceid);
@@ -151,7 +151,7 @@
    * \param d device container
    *
    * Enable ascii output on each device which is of the
-   * ns3::WifiNetDevice type and which is located in the input
+   * ns3::UanNetDevice type and which is located in the input
    * device container and dump that to the specified
    * stdc++ output stream.
    */
@@ -161,7 +161,7 @@
    * \param n node container
    *
    * Enable ascii output on each device which is of the
-   * ns3::WifiNetDevice type and which is located in one
+   * ns3::UanNetDevice type and which is located in one
    * of the input node and dump that to the specified
    * stdc++ output stream.
    */
@@ -170,7 +170,7 @@
    * \param os output stream
    *
    * Enable ascii output on each device which is of the
-   * ns3::WifiNetDevice type and dump that to the specified
+   * ns3::UanNetDevice type and dump that to the specified
    * stdc++ output stream.
    */
   static void EnableAsciiAll (std::ostream &os);
@@ -178,14 +178,14 @@
   /**
    * \param c a set of nodes
    *
-   * This method creates a simple ns3::WifiChannel (with a default
-   * ns3::PropagationLossModel and ns3::PropagationDelayModel) and
-   * creates, for each of the input nodes, a new ns3::WifiNetDevice
-   * attached to this shared channel. Each ns3::WifiNetDevice is also
-   * configured with an ns3::WifiRemoteStationManager, ns3::WifiMac, and,
-   * ns3::WifiPhy, all of which are created based on the user-specified
-   * attributes specified in WifiHelper::SetRemoteStationManager,
-   * WifiHelper::SetMac, and, WifiHelper::SetPhy.
+   * This method creates a simple ns3::UanChannel (with a default
+   * ns3::UanNoiseModelDefault and ns3::UanPropModelIdeal) and
+   * creates, for each of the input nodes, a new ns3::UanNetDevice
+   * attached to this shared channel. Each ns3::UanNetDevice is also
+   * configured with an ns3::UanTransducerHd, ns3::UanMac, and,
+   * ns3::UanPhy, all of which are created based on the user-specified
+   * attributes specified in UanHelper::SetTransducer,
+   * UanHelper::SetMac, and, UanHelper::SetPhy.
    */
 
   NetDeviceContainer Install (NodeContainer c) const;
@@ -193,15 +193,12 @@
    * \param channel a channel to use
    * \param c a set of nodes
    *
-   * For each of the input nodes, a new ns3::WifiNetDevice is attached
-   * to the shared input channel. Each ns3::WifiNetDevice is also
-   * configured with an ns3::WifiRemoteStationManager, ns3::WifiMac, and,
-   * ns3::WifiPhy, all of which are created based on the user-specified
-   * attributes specified in WifiHelper::SetRemoteStationManager,
-   * WifiHelper::SetMac, and, WifiHelper::SetPhy.
-   *
-   * The user is expected to attach to the input channel a proper
-   * ns3::PropagationLossModel, and ns3::PropagationDelayModel.
+   * For each of the input nodes, a new ns3::UanNetDevice is attached
+   * to the shared input channel. Each ns3::UanNetDevice is also
+   * configured with an ns3::UanTransducerHd, a ns3::UanMac, and ns3::UanPhy,
+   * all of which are created based on the user-specified attributes
+   * specified in UanHelper::SetTransducer, UanHelper::SetMac, and
+   * UanHelper::SetPhy.
    */
   NetDeviceContainer Install (NodeContainer c, Ptr<UanChannel> channel) const;
 
--- a/src/devices/uan/model/uan-phy-gen.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/devices/uan/model/uan-phy-gen.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -708,7 +708,7 @@
 bool
 UanPhyGen::IsStateBusy (void)
 {
-  return !IsStateIdle () || !IsStateSleep ();
+  return !IsStateIdle () && !IsStateSleep ();
 }
 bool
 UanPhyGen::IsStateRx (void)
--- a/src/devices/wifi/wifi-test.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/devices/wifi/wifi-test.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -258,7 +258,7 @@
   Ptr<Node> senderA = CreateOne (Vector (5.0, 0.0, 0.0), channel);
   Ptr<Node> senderB = CreateOne (Vector (-5.0, 0.0, 0.0), channel);
 
-  propLoss->SetLoss (senderB, rxOnly, 0, true);
+  propLoss->SetLoss (senderB->GetObject<MobilityModel>(), rxOnly->GetObject<MobilityModel>(), 0, true);
   propLoss->SetDefaultLoss (999);
 
   Simulator::Schedule (Seconds (1.0),
--- a/src/helper/adhoc-aloha-noack-ideal-phy-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-#include "ns3/propagation-delay-model.h"
-#include "ns3/spectrum-propagation-loss-model.h"
-#include "ns3/mobility-model.h"
-#include "ns3/log.h"
-#include "ns3/config.h"
-#include "ns3/simulator.h"
-#include "ns3/names.h"
-#include "ns3/spectrum-channel.h"
-#include "ns3/half-duplex-ideal-phy.h"
-#include "ns3/mac48-address.h"
-#include "ns3/aloha-noack-net-device.h"
-#include "adhoc-aloha-noack-ideal-phy-helper.h"
-
-
-
-
-NS_LOG_COMPONENT_DEFINE ("AdhocAlohaNoackIdealPhyHelper");
-
-namespace ns3 {
-
-
-AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper ()
-{
-  m_phy.SetTypeId ("ns3::HalfDuplexIdealPhy");
-  m_device.SetTypeId ("ns3::AlohaNoackNetDevice");
-  m_queue.SetTypeId ("ns3::DropTailQueue");
-}
-
-AdhocAlohaNoackIdealPhyHelper::~AdhocAlohaNoackIdealPhyHelper ()
-{
-}
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetChannel (Ptr<SpectrumChannel> channel)
-{
-  m_channel = channel;
-}
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetChannel (std::string channelName)
-{
-  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
-  m_channel = channel;
-}
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
-{
-  NS_LOG_FUNCTION (this << txPsd);
-  m_txPsd = txPsd;
-}
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity (Ptr<SpectrumValue> noisePsd)
-{
-  NS_LOG_FUNCTION (this << noisePsd);
-  m_noisePsd = noisePsd;
-}
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
-{
-  m_phy.Set (name, v);
-}
-
-
-void
-AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
-{
-  m_device.Set (name, v);
-}
-
-NetDeviceContainer
-AdhocAlohaNoackIdealPhyHelper::Install (NodeContainer c) const
-{
-  NetDeviceContainer devices;
-  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
-    {
-      Ptr<Node> node = *i;
-
-      Ptr<AlohaNoackNetDevice> dev = (m_device.Create ())->GetObject<AlohaNoackNetDevice> ();
-      dev->SetAddress (Mac48Address::Allocate ());
-      Ptr<Queue> q = (m_queue.Create ())->GetObject<Queue> ();
-      dev->SetQueue (q);
-
-      // note that we could have used a SpectrumPhyHelper here, but
-      // given that it is straightforward to handle the configuration
-      // in this helper here, we avoid asking the user to pass us a
-      // SpectrumPhyHelper, so to spare him some typing.
-
-      Ptr<HalfDuplexIdealPhy>  phy = (m_phy.Create ())->GetObject<HalfDuplexIdealPhy> ();
-      NS_ASSERT (phy);
-
-      dev->SetPhy (phy);
-
-      NS_ASSERT (node);
-      phy->SetMobility (node);
-
-      NS_ASSERT (dev);
-      phy->SetDevice (dev);
-
-      NS_ASSERT_MSG (m_txPsd, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity ()");
-      phy->SetTxPowerSpectralDensity (m_txPsd);
-
-      NS_ASSERT_MSG (m_noisePsd, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity ()");
-      phy->SetNoisePowerSpectralDensity (m_noisePsd);
-
-      NS_ASSERT_MSG (m_channel, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetChannel ()");
-      phy->SetChannel (m_channel);
-      dev->SetChannel (m_channel);
-      m_channel->AddRx (phy);
-
-      phy->SetPhyMacTxEndCallback   (MakeCallback (&AlohaNoackNetDevice::NotifyTransmissionEnd, dev));
-      phy->SetPhyMacRxStartCallback (MakeCallback (&AlohaNoackNetDevice::NotifyReceptionStart, dev));
-      phy->SetPhyMacRxEndOkCallback (MakeCallback (&AlohaNoackNetDevice::NotifyReceptionEndOk, dev));
-      dev->SetPhyMacTxStartCallback (MakeCallback (&HalfDuplexIdealPhy::StartTx, phy));
-
-      node->AddDevice (dev);
-      devices.Add (dev);
-    }
-  return devices;
-}
-
-NetDeviceContainer
-AdhocAlohaNoackIdealPhyHelper::Install (Ptr<Node> node) const
-{
-  return Install (NodeContainer (node));
-}
-
-NetDeviceContainer
-AdhocAlohaNoackIdealPhyHelper::Install (std::string nodeName) const
-{
-  Ptr<Node> node = Names::Find<Node> (nodeName);
-  return Install (node);
-}
-
-
-} // namespace ns3
--- a/src/helper/adhoc-aloha-noack-ideal-phy-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H
-#define ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H
-
-#include <string>
-#include <ns3/attribute.h>
-#include <ns3/object-factory.h>
-#include <ns3/node-container.h>
-#include <ns3/net-device-container.h>
-#include <ns3/queue.h>
-
-
-namespace ns3 {
-
-
-class SpectrumValue;
-class SpectrumChannel;
-
-/**
- *
- * create the NetDevice depicted in the figure
- * @image html HdOfdmAlohaNoAck.png
- *
- */
-class AdhocAlohaNoackIdealPhyHelper
-{
-public:
-  AdhocAlohaNoackIdealPhyHelper ();
-  ~AdhocAlohaNoackIdealPhyHelper ();
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channel
-   */
-  void SetChannel (Ptr<SpectrumChannel> channel);
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channelName
-   */
-  void SetChannel (std::string channelName);
-
-
-  /**
-   *
-   * @param txPsd the Power Spectral Density to be used for transmission by all created PHY instances
-   */
-  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
-
-  /**
-   *
-   * @param noisePsd the Power Spectral Density to be used for transmission by all created PHY instances
-   */
-  void SetNoisePowerSpectralDensity (Ptr<SpectrumValue> noisePsd);
-
-  /**
-   * @param name the name of the attribute to set
-   * @param v the value of the attribute
-   *
-   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
-   */
-  void SetPhyAttribute (std::string name, const AttributeValue &v);
-
-  /**
-   * @param n1 the name of the attribute to set
-   * @param v1 the value of the attribute to set
-   *
-   * Set these attributes on each AlohaNoackNetDevice created
-   */
-  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
-
-
-  /**
-    * @param c the set of nodes on which a device must be created
-    * @return a device container which contains all the devices created by this method.
-    */
-  NetDeviceContainer Install (NodeContainer c) const;
-  /**
-   * @param node the node on which a device must be created
-   * \returns a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (Ptr<Node> node) const;
-  /**
-   * @param nodeName the name of node on which a device must be created
-   * @return a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (std::string nodeName) const;
-
-
-protected:
-  ObjectFactory m_phy;
-  ObjectFactory m_device;
-  ObjectFactory m_queue;
-  Ptr<SpectrumChannel> m_channel;
-  Ptr<SpectrumValue> m_txPsd;
-  Ptr<SpectrumValue> m_noisePsd;
-};
-
-
-
-} // namespace ns3
-
-#endif /* ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H */
--- a/src/helper/spectrum-analyzer-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-#include "ns3/propagation-delay-model.h"
-#include "ns3/spectrum-propagation-loss-model.h"
-#include "ns3/mobility-model.h"
-#include "ns3/log.h"
-#include "ns3/config.h"
-#include "ns3/simulator.h"
-#include "ns3/names.h"
-#include "ns3/spectrum-channel.h"
-#include "ns3/spectrum-analyzer.h"
-#include "ns3/non-communicating-net-device.h"
-#include "ns3/output-stream-wrapper.h"
-#include "ns3/trace-helper.h"
-#include "spectrum-analyzer-helper.h"
-
-
-
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumAnalyzerHelper");
-
-namespace ns3 {
-
-
-static void 
-WriteAveragePowerSpectralDensityReport (Ptr<OutputStreamWrapper> streamWrapper, 
-                                        Ptr<const SpectrumValue> avgPowerSpectralDensity)
-{
-  NS_LOG_FUNCTION (streamWrapper << avgPowerSpectralDensity);
-  std::ostream* ostream = streamWrapper->GetStream ();
-  if (ostream->good ())
-    {
-      Bands::const_iterator fi = avgPowerSpectralDensity->ConstBandsBegin ();
-      Values::const_iterator vi = avgPowerSpectralDensity->ConstValuesBegin ();
-      while (fi != avgPowerSpectralDensity->ConstBandsEnd ())
-        {
-          NS_ASSERT (vi != avgPowerSpectralDensity->ConstValuesEnd ());
-          *ostream << Now ().GetSeconds () << " "
-                   << fi->fc << " "
-                   << *vi << std::endl;
-          ++fi;
-          ++vi;
-        }
-      // An additional line separates different spectrums sweeps
-      *ostream << std::endl;
-    }
-}
-  
-
-
-SpectrumAnalyzerHelper::SpectrumAnalyzerHelper ()
-{
-  NS_LOG_FUNCTION (this);
-  m_phy.SetTypeId ("ns3::SpectrumAnalyzer");
-  m_device.SetTypeId ("ns3::NonCommunicatingNetDevice");
-}
-
-SpectrumAnalyzerHelper::~SpectrumAnalyzerHelper ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-void
-SpectrumAnalyzerHelper::SetChannel (Ptr<SpectrumChannel> channel)
-{
-  NS_LOG_FUNCTION (this);
-  m_channel = channel;
-}
-
-void
-SpectrumAnalyzerHelper::SetChannel (std::string channelName)
-{
-  NS_LOG_FUNCTION (this);
-  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
-  m_channel = channel;
-}
-
-
-void
-SpectrumAnalyzerHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
-{
-  NS_LOG_FUNCTION (this);
-  m_phy.Set (name, v);
-}
-
-
-void
-SpectrumAnalyzerHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
-{
-  NS_LOG_FUNCTION (this);
-  m_device.Set (name, v);
-}
-
- 
-void
-SpectrumAnalyzerHelper::SetRxSpectrumModel (Ptr<SpectrumModel> m)
-{
-  NS_LOG_FUNCTION (this);
-  m_rxSpectrumModel = m;
-}
-
-void
-SpectrumAnalyzerHelper::EnableAsciiAll (std::string prefix)
-{
-  NS_LOG_FUNCTION (this);
-  m_prefix = prefix;
-}  
-
-
-
-NetDeviceContainer
-SpectrumAnalyzerHelper::Install (NodeContainer c) const
-{
-  NS_LOG_FUNCTION (this);
-  NetDeviceContainer devices;
-  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
-    {
-      Ptr<Node> node = *i;
-
-      Ptr<NonCommunicatingNetDevice> dev = m_device.Create ()->GetObject<NonCommunicatingNetDevice> ();
-     
-      Ptr<SpectrumAnalyzer>  phy = m_phy.Create ()->GetObject<SpectrumAnalyzer> ();
-      NS_ASSERT (phy);
-
-      dev->SetPhy (phy);
-
-      NS_ASSERT (node);
-      phy->SetMobility (node);
-
-      NS_ASSERT (dev);
-      phy->SetDevice (dev);
-
-      NS_ASSERT_MSG (m_rxSpectrumModel, "you forgot to call SpectrumAnalyzerHelper::SetRxSpectrumModel ()");
-      phy->SetRxSpectrumModel (m_rxSpectrumModel);
-
-      NS_ASSERT_MSG (m_channel, "you forgot to call SpectrumAnalyzerHelper::SetChannel ()");
-      m_channel->AddRx (phy);
-
-      dev->SetChannel (m_channel);
-
-      uint32_t devId = node->AddDevice (dev);
-      devices.Add (dev);
-
-      if (! m_prefix.empty ())
-        {
-          NS_LOG_LOGIC ("creating new output stream and binding it to the callback");
-          AsciiTraceHelper asciiTraceHelper;
-          std::string filename;
-          filename = asciiTraceHelper.GetFilenameFromDevice (m_prefix, dev);
-          Ptr<OutputStreamWrapper> stream = asciiTraceHelper.CreateFileStream (filename);
-
-          // note that we don't use AsciiTraceHelper to connect the trace sink, since we use a custom trace sink
-
-          // the following is inspired from YansWifiPhyHelper::EnableAsciiInternal
-          std::ostringstream oss;
-          oss.str (""); 
-          oss << "/NodeList/" << node->GetId () << "/DeviceList/" << devId << "/$ns3::NonCommunicatingNetDevice/Phy/AveragePowerSpectralDensityReport";
-          Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&WriteAveragePowerSpectralDensityReport, stream));
-
-          phy->Start ();
-
-        }
-    }
-  return devices;
-}
-
-NetDeviceContainer
-SpectrumAnalyzerHelper::Install (Ptr<Node> node) const
-{
-  NS_LOG_FUNCTION (this);
-  return Install (NodeContainer (node));
-}
-
-NetDeviceContainer
-SpectrumAnalyzerHelper::Install (std::string nodeName) const
-{
-  NS_LOG_FUNCTION (this);
-  Ptr<Node> node = Names::Find<Node> (nodeName);
-  return Install (node);
-}
-
-
-} // namespace ns3
--- a/src/helper/spectrum-analyzer-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_ANALYZER_HELPER_H
-#define SPECTRUM_ANALYZER_HELPER_H
-
-
-#include <string>
-#include <ns3/attribute.h>
-#include <ns3/object-factory.h>
-#include <ns3/node-container.h>
-#include <ns3/net-device-container.h>
-#include <ns3/queue.h>
-
-
-namespace ns3 {
-
-
-class SpectrumValue;
-class SpectrumChannel;
-class SpectrumModel;
-
-class SpectrumAnalyzerHelper
-{
-public:
-  SpectrumAnalyzerHelper ();
-  ~SpectrumAnalyzerHelper ();
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channel
-   */
-  void SetChannel (Ptr<SpectrumChannel> channel);
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channelName
-   */
-  void SetChannel (std::string channelName);
-
-  /**
-   * @param name the name of the attribute to set
-   * @param v the value of the attribute
-   *
-   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
-   */
-  void SetPhyAttribute (std::string name, const AttributeValue &v);
-
-  /**
-   * @param n1 the name of the attribute to set
-   * @param v1 the value of the attribute to set
-   *
-   * Set these attributes on each AlohaNoackNetDevice created
-   */
-  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
-
-  /**
-   * Set the spectrum model used by the created SpectrumAnalyzer instances to represent incoming signals
-   *
-   * @param m 
-   */
-  void SetRxSpectrumModel (Ptr<SpectrumModel> m);
-
-
-  /** 
-   * Enable ASCII output. This will create one filename for every created SpectrumAnalyzer instance.
-   * 
-   * @param prefix the prefix of the filename of the traces that will be created.
-   */
-  void EnableAsciiAll (std::string prefix);
-
-  /**
-    * @param c the set of nodes on which a device must be created
-    * @return a device container which contains all the devices created by this method.
-    */
-  NetDeviceContainer Install (NodeContainer c) const;
-  /**
-   * @param node the node on which a device must be created
-   * \returns a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (Ptr<Node> node) const;
-  /**
-   * @param nodeName the name of node on which a device must be created
-   * @return a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (std::string nodeName) const;
-
-
-private:
-  ObjectFactory m_phy;
-  ObjectFactory m_device;
-  Ptr<SpectrumChannel> m_channel;
-  Ptr<SpectrumModel> m_rxSpectrumModel;
-  std::string m_prefix;
-};
-
-
-} // namespace ns3
-
-
-#endif /* SPECTRUM_ANALYZER_HELPER_H */
--- a/src/helper/spectrum-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-#include "spectrum-helper.h"
-#include <ns3/simulator.h>
-#include <ns3/config.h>
-#include <ns3/names.h>
-#include <ns3/spectrum-propagation-loss-model.h>
-#include <ns3/propagation-delay-model.h>
-#include <ns3/spectrum-channel.h>
-#include <ns3/spectrum-phy.h>
-#include <ns3/single-model-spectrum-channel.h>
-#include <ns3/multi-model-spectrum-channel.h>
-#include <ns3/half-duplex-ideal-phy.h>
-
-
-namespace ns3 {
-
-
-SpectrumChannelHelper
-SpectrumChannelHelper::Default (void)
-{
-  SpectrumChannelHelper h;
-  h.SetChannel ("ns3::SingleModelSpectrumChannel");
-  h.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel");
-  h.AddSpectrumPropagationLoss ("ns3::FriisSpectrumPropagationLossModel");
-  return h;
-}
-
-void
-SpectrumChannelHelper::SetChannel (std::string type,
-                                   std::string n0, const AttributeValue &v0,
-                                   std::string n1, const AttributeValue &v1,
-                                   std::string n2, const AttributeValue &v2,
-                                   std::string n3, const AttributeValue &v3,
-                                   std::string n4, const AttributeValue &v4,
-                                   std::string n5, const AttributeValue &v5,
-                                   std::string n6, const AttributeValue &v6,
-                                   std::string n7, const AttributeValue &v7)
-{
-  ObjectFactory factory;
-  m_channel.SetTypeId (type);
-  m_channel.Set (n0, v0);
-  m_channel.Set (n1, v1);
-  m_channel.Set (n2, v2);
-  m_channel.Set (n3, v3);
-  m_channel.Set (n4, v4);
-  m_channel.Set (n5, v5);
-  m_channel.Set (n6, v6);
-  m_channel.Set (n7, v7);
-}
-
-
-void
-SpectrumChannelHelper::AddSpectrumPropagationLoss (std::string type,
-                                                   std::string n0, const AttributeValue &v0,
-                                                   std::string n1, const AttributeValue &v1,
-                                                   std::string n2, const AttributeValue &v2,
-                                                   std::string n3, const AttributeValue &v3,
-                                                   std::string n4, const AttributeValue &v4,
-                                                   std::string n5, const AttributeValue &v5,
-                                                   std::string n6, const AttributeValue &v6,
-                                                   std::string n7, const AttributeValue &v7)
-{
-  ObjectFactory factory;
-  factory.SetTypeId (type);
-  factory.Set (n0, v0);
-  factory.Set (n1, v1);
-  factory.Set (n2, v2);
-  factory.Set (n3, v3);
-  factory.Set (n4, v4);
-  factory.Set (n5, v5);
-  factory.Set (n6, v6);
-  factory.Set (n7, v7);
-  m_spectrumPropagationLoss.push_back (factory);
-}
-
-void
-SpectrumChannelHelper::SetPropagationDelay (std::string type,
-                                            std::string n0, const AttributeValue &v0,
-                                            std::string n1, const AttributeValue &v1,
-                                            std::string n2, const AttributeValue &v2,
-                                            std::string n3, const AttributeValue &v3,
-                                            std::string n4, const AttributeValue &v4,
-                                            std::string n5, const AttributeValue &v5,
-                                            std::string n6, const AttributeValue &v6,
-                                            std::string n7, const AttributeValue &v7)
-{
-  ObjectFactory factory;
-  factory.SetTypeId (type);
-  factory.Set (n0, v0);
-  factory.Set (n1, v1);
-  factory.Set (n2, v2);
-  factory.Set (n3, v3);
-  factory.Set (n4, v4);
-  factory.Set (n5, v5);
-  factory.Set (n6, v6);
-  factory.Set (n7, v7);
-  m_propagationDelay = factory;
-}
-
-Ptr<SpectrumChannel>
-SpectrumChannelHelper::Create (void) const
-{
-  Ptr<SpectrumChannel> channel = (m_channel.Create ())->GetObject<SpectrumChannel> ();
-  Ptr<SpectrumPropagationLossModel> prev = 0;
-  for (std::vector<ObjectFactory>::const_iterator i = m_spectrumPropagationLoss.begin (); i != m_spectrumPropagationLoss.end (); ++i)
-    {
-      Ptr<SpectrumPropagationLossModel> cur = (*i).Create<SpectrumPropagationLossModel> ();
-      if (prev == 0)
-        {
-          channel->AddSpectrumPropagationLossModel (cur);
-        }
-      else
-        {
-          prev->SetNext (cur);
-        }
-      prev = cur;
-    }
-  Ptr<PropagationDelayModel> delay = m_propagationDelay.Create<PropagationDelayModel> ();
-  channel->SetPropagationDelayModel (delay);
-  return channel;
-}
-
-
-
-
-
-
-void
-SpectrumPhyHelper::SetPhy (std::string type,
-                           std::string n0, const AttributeValue &v0,
-                           std::string n1, const AttributeValue &v1,
-                           std::string n2, const AttributeValue &v2,
-                           std::string n3, const AttributeValue &v3,
-                           std::string n4, const AttributeValue &v4,
-                           std::string n5, const AttributeValue &v5,
-                           std::string n6, const AttributeValue &v6,
-                           std::string n7, const AttributeValue &v7)
-{
-  m_phy.SetTypeId (type);
-  m_phy.Set (n0, v0);
-  m_phy.Set (n1, v1);
-  m_phy.Set (n2, v2);
-  m_phy.Set (n3, v3);
-  m_phy.Set (n4, v4);
-  m_phy.Set (n5, v5);
-  m_phy.Set (n6, v6);
-  m_phy.Set (n7, v7);
-}
-
-
-
-void
-SpectrumPhyHelper::SetChannel (Ptr<SpectrumChannel> channel)
-{
-  m_channel = channel;
-}
-
-void
-SpectrumPhyHelper::SetChannel (std::string channelName)
-{
-  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
-  m_channel = channel;
-}
-
-void
-SpectrumPhyHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
-{
-  m_phy.Set (name, v);
-}
-
-
-Ptr<SpectrumPhy>
-SpectrumPhyHelper::Create (Ptr<Node> node, Ptr<NetDevice> device) const
-{
-  NS_ASSERT (m_channel);
-  Ptr<SpectrumPhy> phy = (m_phy.Create ())->GetObject<SpectrumPhy> ();
-  phy->SetChannel (m_channel);
-  phy->SetMobility (node);
-  phy->SetDevice (device);
-  return phy;
-}
-
-
-} // namespace ns3
--- a/src/helper/spectrum-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_HELPER_H
-#define SPECTRUM_HELPER_H
-
-#include <string>
-#include <ns3/attribute.h>
-#include <ns3/object-factory.h>
-#include <ns3/node-container.h>
-#include <ns3/net-device-container.h>
-
-namespace ns3 {
-
-class SpectrumPhy;
-class SpectrumChannel;
-class Node;
-class NetDevice;
-
-
-class SpectrumChannelHelper
-{
-public:
-  static SpectrumChannelHelper Default ();
-
-  /**
-   * \param type the type of the SpectrumChannel to use
-   * \param n0 the name of the attribute to set
-   * \param v0 the value of the attribute to set
-   * \param n1 the name of the attribute to set
-   * \param v1 the value of the attribute to set
-   * \param n2 the name of the attribute to set
-   * \param v2 the value of the attribute to set
-   * \param n3 the name of the attribute to set
-   * \param v3 the value of the attribute to set
-   * \param n4 the name of the attribute to set
-   * \param v4 the value of the attribute to set
-   * \param n5 the name of the attribute to set
-   * \param v5 the value of the attribute to set
-   * \param n6 the name of the attribute to set
-   * \param v6 the value of the attribute to set
-   * \param n7 the name of the attribute to set
-   * \param v7 the value of the attribute to set
-   */
-  void SetChannel (std::string type,
-                   std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
-                   std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
-                   std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
-                   std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
-                   std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
-                   std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
-                   std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
-                   std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
-
-  /**
-   * \param name the name of the model to set
-   * \param n0 the name of the attribute to set
-   * \param v0 the value of the attribute to set
-   * \param n1 the name of the attribute to set
-   * \param v1 the value of the attribute to set
-   * \param n2 the name of the attribute to set
-   * \param v2 the value of the attribute to set
-   * \param n3 the name of the attribute to set
-   * \param v3 the value of the attribute to set
-   * \param n4 the name of the attribute to set
-   * \param v4 the value of the attribute to set
-   * \param n5 the name of the attribute to set
-   * \param v5 the value of the attribute to set
-   * \param n6 the name of the attribute to set
-   * \param v6 the value of the attribute to set
-   * \param n7 the name of the attribute to set
-   * \param v7 the value of the attribute to set
-   *
-   * Add a new spectrum propagation loss to this channel helper.
-   */
-  void AddSpectrumPropagationLoss (std::string name,
-                                   std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
-                                   std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
-                                   std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
-                                   std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
-                                   std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
-                                   std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
-                                   std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
-                                   std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
-  /**
-   * \param name the name of the model to set
-   * \param n0 the name of the attribute to set
-   * \param v0 the value of the attribute to set
-   * \param n1 the name of the attribute to set
-   * \param v1 the value of the attribute to set
-   * \param n2 the name of the attribute to set
-   * \param v2 the value of the attribute to set
-   * \param n3 the name of the attribute to set
-   * \param v3 the value of the attribute to set
-   * \param n4 the name of the attribute to set
-   * \param v4 the value of the attribute to set
-   * \param n5 the name of the attribute to set
-   * \param v5 the value of the attribute to set
-   * \param n6 the name of the attribute to set
-   * \param v6 the value of the attribute to set
-   * \param n7 the name of the attribute to set
-   * \param v7 the value of the attribute to set
-   *
-   * Configure a propagation delay for this channel.
-   */
-  void SetPropagationDelay (std::string name,
-                            std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
-                            std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
-                            std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
-                            std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
-                            std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
-                            std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
-                            std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
-                            std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
-
-  /**
-   * \returns a new channel
-   *
-   * Create a channel based on the configuration parameters set previously.
-   */
-  Ptr<SpectrumChannel> Create (void) const;
-
-private:
-  std::vector<ObjectFactory> m_spectrumPropagationLoss;
-  ObjectFactory m_propagationDelay;
-  ObjectFactory m_channel;
-};
-
-
-
-/**
- * create and configure several SpectrumPhy instances and connect them to a channel.
- */
-class SpectrumPhyHelper
-{
-public:
-  /**
-   * \param name the type of SpectrumPhy to use
-   * \param n0 the name of the attribute to set
-   * \param v0 the value of the attribute to set
-   * \param n1 the name of the attribute to set
-   * \param v1 the value of the attribute to set
-   * \param n2 the name of the attribute to set
-   * \param v2 the value of the attribute to set
-   * \param n3 the name of the attribute to set
-   * \param v3 the value of the attribute to set
-   * \param n4 the name of the attribute to set
-   * \param v4 the value of the attribute to set
-   * \param n5 the name of the attribute to set
-   * \param v5 the value of the attribute to set
-   * \param n6 the name of the attribute to set
-   * \param v6 the value of the attribute to set
-   * \param n7 the name of the attribute to set
-   * \param v7 the value of the attribute to set
-   */
-  void SetPhy (std::string name,
-               std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
-               std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
-               std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
-               std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
-               std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
-               std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
-               std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
-               std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
-
-  /**
-   * set the channel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channel
-   */
-  void SetChannel (Ptr<SpectrumChannel> channel);
-
-  /**
-   * set the channel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channelName
-   */
-  void SetChannel (std::string channelName);
-
-  /**
-   * \param name the name of the attribute to set
-   * \param v the value of the attribute
-   *
-   * Set an attribute of the SpectrumPhy instances to be created
-   */
-  void SetPhyAttribute (std::string name, const AttributeValue &v);
-
-  /**
-   *
-   * @param node
-   * @param device
-   *
-   * @return a  newly created SpectrumPhy instance
-   */
-  Ptr<SpectrumPhy> Create (Ptr<Node> node, Ptr<NetDevice> device) const;
-
-
-
-private:
-  ObjectFactory m_phy;
-  Ptr<SpectrumChannel> m_channel;
-};
-
-
-} // namespace ns3
-
-#endif /* SPECTRUM_HELPER_H */
--- a/src/helper/waveform-generator-helper.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-#include "ns3/propagation-delay-model.h"
-#include "ns3/spectrum-propagation-loss-model.h"
-#include "ns3/mobility-model.h"
-#include "ns3/log.h"
-#include "ns3/config.h"
-#include "ns3/simulator.h"
-#include "ns3/names.h"
-#include "ns3/spectrum-channel.h"
-#include "ns3/waveform-generator.h"
-#include "ns3/non-communicating-net-device.h"
-#include "waveform-generator-helper.h"
-
-
-
-
-NS_LOG_COMPONENT_DEFINE ("WaveformGeneratorHelper");
-
-namespace ns3 {
-
-
-WaveformGeneratorHelper::WaveformGeneratorHelper ()
-{
-  m_phy.SetTypeId ("ns3::WaveformGenerator");
-  m_device.SetTypeId ("ns3::NonCommunicatingNetDevice");
-}
-
-WaveformGeneratorHelper::~WaveformGeneratorHelper ()
-{
-}
-
-void
-WaveformGeneratorHelper::SetChannel (Ptr<SpectrumChannel> channel)
-{
-  m_channel = channel;
-}
-
-void
-WaveformGeneratorHelper::SetChannel (std::string channelName)
-{
-  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
-  m_channel = channel;
-}
-
-void
-WaveformGeneratorHelper::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
-{
-  NS_LOG_FUNCTION (this << txPsd);
-  m_txPsd = txPsd;
-}
-
-
-void
-WaveformGeneratorHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
-{
-  m_phy.Set (name, v);
-}
-
-
-void
-WaveformGeneratorHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
-{
-  m_device.Set (name, v);
-}
-
-
-NetDeviceContainer
-WaveformGeneratorHelper::Install (NodeContainer c) const
-{
-  NetDeviceContainer devices;
-  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
-    {
-      Ptr<Node> node = *i;
-
-      Ptr<NonCommunicatingNetDevice> dev = m_device.Create ()->GetObject<NonCommunicatingNetDevice> ();
-     
-      Ptr<WaveformGenerator>  phy = m_phy.Create ()->GetObject<WaveformGenerator> ();
-      NS_ASSERT (phy);
-
-      dev->SetPhy (phy);
-
-      NS_ASSERT (node);
-      phy->SetMobility (node);
-
-      NS_ASSERT (dev);
-      phy->SetDevice (dev);
-
-      NS_ASSERT_MSG (m_txPsd, "you forgot to call WaveformGeneratorHelper::SetTxPowerSpectralDensity ()");
-      phy->SetTxPowerSpectralDensity (m_txPsd);
-
-      NS_ASSERT_MSG (m_channel, "you forgot to call WaveformGeneratorHelper::SetChannel ()");
-      phy->SetChannel (m_channel);
-      dev->SetChannel (m_channel);
-
-
-      node->AddDevice (dev);
-      devices.Add (dev);
-    }
-  return devices;
-}
-
-NetDeviceContainer
-WaveformGeneratorHelper::Install (Ptr<Node> node) const
-{
-  return Install (NodeContainer (node));
-}
-
-NetDeviceContainer
-WaveformGeneratorHelper::Install (std::string nodeName) const
-{
-  Ptr<Node> node = Names::Find<Node> (nodeName);
-  return Install (node);
-}
-
-
-} // namespace ns3
--- a/src/helper/waveform-generator-helper.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef WAVEFORM_GENERATOR_HELPER_H
-#define WAVEFORM_GENERATOR_HELPER_H
-
-
-#include <string>
-#include <ns3/attribute.h>
-#include <ns3/object-factory.h>
-#include <ns3/node-container.h>
-#include <ns3/net-device-container.h>
-#include <ns3/queue.h>
-
-
-namespace ns3 {
-
-
-class SpectrumValue;
-class SpectrumChannel;
-
-
-class WaveformGeneratorHelper
-{
-public:
-  WaveformGeneratorHelper ();
-  ~WaveformGeneratorHelper ();
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channel
-   */
-  void SetChannel (Ptr<SpectrumChannel> channel);
-
-  /**
-   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
-   *
-   * @param channelName
-   */
-  void SetChannel (std::string channelName);
-
-
-  /**
-   *
-   * @param txPsd the Power Spectral Density to be used for transmission by all created PHY instances
-   */
-  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
-
-
-  /**
-   * @param name the name of the attribute to set
-   * @param v the value of the attribute
-   *
-   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
-   */
-  void SetPhyAttribute (std::string name, const AttributeValue &v);
-
-  /**
-   * @param n1 the name of the attribute to set
-   * @param v1 the value of the attribute to set
-   *
-   * Set these attributes on each AlohaNoackNetDevice created
-   */
-  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
-
-
-  /**
-    * @param c the set of nodes on which a device must be created
-    * @return a device container which contains all the devices created by this method.
-    */
-  NetDeviceContainer Install (NodeContainer c) const;
-  /**
-   * @param node the node on which a device must be created
-   * \returns a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (Ptr<Node> node) const;
-  /**
-   * @param nodeName the name of node on which a device must be created
-   * @return a device container which contains all the devices created by this method.
-   */
-  NetDeviceContainer Install (std::string nodeName) const;
-
-
-protected:
-  ObjectFactory m_phy;
-  ObjectFactory m_device;
-  Ptr<SpectrumChannel> m_channel;
-  Ptr<SpectrumValue> m_txPsd;
-};
-
-
-} // namespace ns3
-
-
-#endif /* WAVEFORM_GENERATOR_HELPER_H */
--- a/src/helper/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/helper/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    helper = bld.create_ns3_module('helper', ['internet-stack', 'wifi', 'point-to-point', 'csma', 'onoff', 'packet-sink', 'udp-echo', 'spectrum'])
+    helper = bld.create_ns3_module('helper', ['mobility', 'node', 'internet-stack', 'wifi', 'point-to-point', 'csma', 'onoff', 'packet-sink', 'udp-echo', 'spectrum'])
     helper.source = [
         'node-container.cc',
         'net-device-container.cc',
@@ -19,8 +19,6 @@
         'ipv4-interface-container.cc',
         'udp-echo-helper.cc',
         'yans-wifi-helper.cc',
-        'spectrum-helper.cc',
-        'adhoc-aloha-noack-ideal-phy-helper.cc',
         'v4ping-helper.cc',
         'nqos-wifi-mac-helper.cc',
         'qos-wifi-mac-helper.cc',
@@ -45,8 +43,6 @@
         'trace-helper.cc',
         'wimax-helper.cc',
         'topology-reader-helper.cc',
-        'waveform-generator-helper.cc',
-        'spectrum-analyzer-helper.cc',
         'bulk-send-helper.cc',
         ]
 
@@ -69,8 +65,6 @@
         'ipv4-interface-container.h',
         'udp-echo-helper.h',
         'yans-wifi-helper.h',
-        'spectrum-helper.h',
-        'adhoc-aloha-noack-ideal-phy-helper.h',
         'v4ping-helper.h',
         'nqos-wifi-mac-helper.h',
         'qos-wifi-mac-helper.h',
@@ -96,8 +90,6 @@
         'trace-helper.h',
         'wimax-helper.h',
         'topology-reader-helper.h',
-        'waveform-generator-helper.h',
-        'spectrum-analyzer-helper.h',
         'bulk-send-helper.h',
         ]
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/internet-stack/ipv4-packet-info-tag.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,325 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Hajime Tazaki
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
+ */
+
+
+#include <stdint.h>
+#include "ns3/ipv4-address.h"
+#include "ns3/test.h"
+#include "ipv4-packet-info-tag.h"
+
+namespace ns3 {
+
+Ipv4PacketInfoTag::Ipv4PacketInfoTag ()  
+  : m_addr (Ipv4Address ()),
+    m_spec_dst (Ipv4Address ()),
+    m_ifindex (0),
+    m_ttl (0)
+{
+}
+
+void 
+Ipv4PacketInfoTag::SetAddress (Ipv4Address addr)
+{
+  m_addr = addr;
+}
+
+Ipv4Address
+Ipv4PacketInfoTag::GetAddress (void) const
+{
+  return m_addr;
+}
+
+void 
+Ipv4PacketInfoTag::SetLocalAddress (Ipv4Address addr)
+{
+  m_spec_dst = addr;
+}
+
+Ipv4Address
+Ipv4PacketInfoTag::GetLocalAddress (void) const
+{
+  return m_spec_dst;
+}
+
+void 
+Ipv4PacketInfoTag::SetRecvIf (uint32_t ifindex)
+{
+  m_ifindex = ifindex;
+}
+
+uint32_t 
+Ipv4PacketInfoTag::GetRecvIf (void) const
+{
+  return m_ifindex;
+}
+
+void 
+Ipv4PacketInfoTag::SetTtl (uint8_t ttl)
+{
+  m_ttl = ttl;
+}
+
+uint8_t 
+Ipv4PacketInfoTag::GetTtl (void) const
+{
+  return m_ttl;
+}
+
+
+
+TypeId
+Ipv4PacketInfoTag::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::Ipv4PacketInfoTag")
+    .SetParent<Tag> ()
+    .AddConstructor<Ipv4PacketInfoTag> ()
+    ;
+  return tid;
+}
+TypeId
+Ipv4PacketInfoTag::GetInstanceTypeId (void) const
+{
+  return GetTypeId ();
+}
+
+uint32_t 
+Ipv4PacketInfoTag::GetSerializedSize (void) const
+{ 
+  return 4 + 4 
+    + sizeof (uint32_t)
+    + sizeof (uint8_t);
+}
+void 
+Ipv4PacketInfoTag::Serialize (TagBuffer i) const
+{ 
+  uint8_t buf[4];
+  m_addr.Serialize (buf);
+  i.Write (buf, 4);
+  m_spec_dst.Serialize (buf);
+  i.Write (buf, 4);
+  i.WriteU32 (m_ifindex);
+  i.WriteU8 (m_ttl);
+}
+void 
+Ipv4PacketInfoTag::Deserialize (TagBuffer i)
+{ 
+  uint8_t buf[4];
+  i.Read (buf, 4);
+  m_addr.Deserialize (buf);
+  i.Read (buf, 4);
+  m_spec_dst.Deserialize (buf);
+  m_ifindex = i.ReadU32 ();
+  m_ttl = i.ReadU8 ();
+}
+void
+Ipv4PacketInfoTag::Print (std::ostream &os) const
+{
+  os << "Ipv4 PKTINFO [DestAddr: " << m_addr;
+  os << ", Local Address:" << m_spec_dst;
+  os << ", RecvIf:" << (uint32_t) m_ifindex;
+  os << ", TTL:" << (uint32_t) m_ttl;
+  os << "] ";
+}
+}//namespace ns3
+
+//-----------------------------------------------------------------------------
+// Unit tests
+//-----------------------------------------------------------------------------
+
+#include "ns3/log.h"
+#include "ns3/abort.h"
+#include "ns3/attribute.h"
+#include "ns3/simple-net-device.h"
+#include "ns3/object-factory.h"
+#include "ns3/socket-factory.h"
+#include "ns3/udp-socket-factory.h"
+#include "ns3/udp-socket.h"
+#include "ns3/inet-socket-address.h"
+#include "ns3/ipv4-l3-protocol.h"
+#include "ns3/ipv4-raw-socket-factory.h"
+#include "ns3/ipv4-interface.h"
+#include "ns3/arp-l3-protocol.h"
+#include "ns3/icmpv4-l4-protocol.h"
+#include "ns3/ipv4-static-routing.h"
+#include "ns3/ipv4-list-routing.h"
+#include "ns3/udp-l4-protocol.h"
+#include "ns3/tcp-l4-protocol.h"
+#include "ns3/simulator.h"
+#include "ns3/node.h"
+
+namespace ns3 {
+
+static void
+AddInternetStack (Ptr<Node> node)
+{
+  //ARP
+  Ptr<ArpL3Protocol> arp = CreateObject<ArpL3Protocol> ();
+  node->AggregateObject(arp);
+  //IPV4
+  Ptr<Ipv4L3Protocol> ipv4 = CreateObject<Ipv4L3Protocol> ();
+  //Routing for Ipv4
+  Ptr<Ipv4ListRouting> ipv4Routing = CreateObject<Ipv4ListRouting> ();
+  ipv4->SetRoutingProtocol (ipv4Routing);
+  Ptr<Ipv4StaticRouting> ipv4staticRouting = CreateObject<Ipv4StaticRouting> ();
+  ipv4Routing->AddRoutingProtocol (ipv4staticRouting, 0);
+  node->AggregateObject(ipv4);
+  //ICMP
+  Ptr<Icmpv4L4Protocol> icmp = CreateObject<Icmpv4L4Protocol> ();
+  node->AggregateObject(icmp);
+  //UDP
+  Ptr<UdpL4Protocol> udp = CreateObject<UdpL4Protocol> ();
+  node->AggregateObject(udp); 
+}
+
+class Ipv4PacketInfoTagTest: public TestCase 
+{
+public:
+  Ipv4PacketInfoTagTest ();
+private:
+  virtual void DoRun (void);
+  void RxCb (Ptr<Socket> socket);
+  void DoSendData (Ptr<Socket> socket, std::string to);
+};
+
+Ipv4PacketInfoTagTest::Ipv4PacketInfoTagTest ()
+  : TestCase ("Ipv4PacketInfoTagTest") 
+{}
+
+void
+Ipv4PacketInfoTagTest::RxCb (Ptr<Socket> socket)
+{
+  uint32_t availableData;
+  Ptr<Packet> m_receivedPacket;
+
+  availableData = socket->GetRxAvailable ();
+  m_receivedPacket = socket->Recv (std::numeric_limits<uint32_t>::max(), 0);
+  NS_ASSERT (availableData == m_receivedPacket->GetSize ());
+
+  Ipv4PacketInfoTag tag;
+  bool found;
+  found = m_receivedPacket->RemovePacketTag (tag);
+  NS_ASSERT (found);
+  tag.Print (std::cout);
+}
+
+void
+Ipv4PacketInfoTagTest::DoSendData (Ptr<Socket> socket, std::string to)
+{
+  Address realTo = InetSocketAddress (Ipv4Address (to.c_str()), 200);
+  if (DynamicCast<UdpSocket> (socket) != 0)
+    {
+      NS_TEST_EXPECT_MSG_EQ (socket->SendTo (Create<Packet> (123), 0, realTo),
+                             123, "XXX");
+    }
+  // Should only Ipv4RawSock
+  else
+    {
+      socket->SendTo (Create<Packet> (123), 0, realTo);
+    }
+}
+
+void
+Ipv4PacketInfoTagTest::DoRun (void)
+{
+  Ptr<Node> node0 = CreateObject<Node> ();
+  Ptr<Node> node1 = CreateObject<Node> ();
+
+  Ptr<SimpleNetDevice> device = CreateObject<SimpleNetDevice> ();
+  Ptr<SimpleNetDevice> device2 = CreateObject<SimpleNetDevice> ();
+
+  // For Node 0
+  node0->AddDevice (device);
+  AddInternetStack (node0);
+  Ptr<Ipv4> ipv4 = node0->GetObject<Ipv4> ();
+
+  uint32_t index = ipv4->AddInterface (device);
+  Ipv4InterfaceAddress ifaceAddr1 = Ipv4InterfaceAddress ("10.1.1.1",
+                                                          "255.255.255.0");
+  ipv4->AddAddress (index, ifaceAddr1);
+  ipv4->SetMetric (index, 1);
+  ipv4->SetUp (index);
+
+  // For Node 1
+  node1->AddDevice (device2);
+  AddInternetStack (node1);
+  ipv4 = node1->GetObject<Ipv4> ();
+
+  index = ipv4->AddInterface (device2);
+  Ipv4InterfaceAddress ifaceAddr2 = Ipv4InterfaceAddress ("10.1.1.2",
+                                                          "255.255.255.0");
+  ipv4->AddAddress (index, ifaceAddr2);
+  ipv4->SetMetric (index, 1);
+  ipv4->SetUp (index);
+
+  // IPv4 test
+  Ptr<SocketFactory> factory = node0->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
+  Ptr<Socket> socket = factory->CreateSocket ();
+  InetSocketAddress local =  InetSocketAddress (Ipv4Address::GetAny (), 200);
+  socket->Bind (local);
+  socket->SetRecvPktInfo (true);
+  socket->SetRecvCallback (MakeCallback (&ns3::Ipv4PacketInfoTagTest::RxCb, this));
+
+  // receive on loopback 
+  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "127.0.0.1");
+  Simulator::Run ();
+
+  Ptr<SocketFactory> factory2 = node1->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
+  Ptr<Socket> socket2 = factory2->CreateSocket ();
+  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
+  Simulator::Run ();
+
+  // ipv4 w rawsocket
+  factory = node0->GetObject<SocketFactory> (Ipv4RawSocketFactory::GetTypeId ());
+  socket = factory->CreateSocket ();
+  local =  InetSocketAddress (Ipv4Address::GetAny (), 0);
+  socket->Bind (local);
+  socket->SetRecvPktInfo (true);
+  socket->SetRecvCallback (MakeCallback (&ns3::Ipv4PacketInfoTagTest::RxCb, this));
+
+  // receive on loopback 
+  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "127.0.0.1");
+  Simulator::Run ();
+
+  factory2 = node1->GetObject<SocketFactory> (Ipv4RawSocketFactory::GetTypeId ());
+  socket2 = factory2->CreateSocket ();
+  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
+  Simulator::Run ();
+  Simulator::Destroy ();
+}
+
+static class Ipv4PacketInfoTagTestSuite : public TestSuite
+{
+public:
+  Ipv4PacketInfoTagTestSuite ();
+private:
+} g_packetinfotagTests;
+
+Ipv4PacketInfoTagTestSuite::Ipv4PacketInfoTagTestSuite ()
+  : TestSuite ("ipv4-packet-info-tag", UNIT)
+{
+  AddTestCase (new Ipv4PacketInfoTagTest ());
+}
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/internet-stack/ipv4-packet-info-tag.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,89 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Hajime Tazaki
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
+ */
+
+#ifndef __IPV4_PACKET_INFO_TAG_H__
+#define __IPV4_PACKET_INFO_TAG_H__
+
+#include "ns3/tag.h"
+
+namespace ns3 {
+
+
+class Node;
+class Packet;
+
+/**
+ * \brief This class implements Linux struct pktinfo 
+ * in order to deliver ancillary information to the socket interface.
+ * This is used with socket option such as IP_PKTINFO, IP_RECVTTL, 
+ * IP_RECVTOS. See linux manpage ip(7).
+ *
+ * This tag in the send direction is presently not enabled but we
+ * would accept a patch along those lines in the future.
+ */
+class Ipv4PacketInfoTag : public Tag
+{
+public:
+  Ipv4PacketInfoTag ();
+  // Implemented, but not used in the stack yet
+  void SetAddress (Ipv4Address addr);
+  // Implemented, but not used in the stack yet
+  Ipv4Address GetAddress (void) const;
+  // This corresponds to "ipi_spec_dst" in struct in_pktinfo.
+  // Implemented, but not used in the stack yet
+  void SetLocalAddress (Ipv4Address addr);
+  // This corresponds to "ipi_spec_dst" in struct in_pktinfo.
+  // Implemented, but not used in the stack yet
+  Ipv4Address GetLocalAddress (void) const;
+  void SetRecvIf (uint32_t ifindex);
+  uint32_t GetRecvIf (void) const;
+  // Implemented, but not used in the stack yet
+  void SetTtl (uint8_t ttl);
+  // Implemented, but not used in the stack yet
+  uint8_t GetTtl (void) const;
+
+  static TypeId GetTypeId (void);  
+  virtual TypeId GetInstanceTypeId (void) const;
+  virtual uint32_t GetSerializedSize (void) const;
+  virtual void Serialize (TagBuffer i) const;
+  virtual void Deserialize (TagBuffer i);
+  virtual void Print (std::ostream &os) const;
+
+private:
+  // Linux IP_PKTINFO ip(7) implementation
+  // 
+  // struct in_pktinfo {
+  //   unsigned int   ipi_ifindex;  /* Interface index */
+  //   struct in_addr ipi_spec_dst; /* Local address */
+  //   struct in_addr ipi_addr;     /* Header Destination
+  //                                   address */
+  // };
+
+  Ipv4Address m_addr;
+  Ipv4Address m_spec_dst;
+  uint32_t m_ifindex;
+
+  // Uset for IP_RECVTTL, though not implemented yet.
+  uint8_t m_ttl;
+};
+} //namespace ns3
+
+#endif /* __IPV4_PACKET_INFO_TAG_H__ */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/internet-stack/ipv6-packet-info-tag.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,332 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Hajime Tazaki
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
+ */
+
+
+#include <stdint.h>
+#include "ns3/ipv6-address.h"
+#include "ns3/test.h"
+#include "ipv6-packet-info-tag.h"
+
+namespace ns3 {
+
+Ipv6PacketInfoTag::Ipv6PacketInfoTag ()  
+  : m_addr (Ipv6Address ()),
+    m_ifindex (0),
+    m_hoplimit (0),
+    m_tclass (0)
+{
+}
+
+void 
+Ipv6PacketInfoTag::SetAddress (Ipv6Address addr)
+{
+  m_addr = addr;
+}
+
+Ipv6Address
+Ipv6PacketInfoTag::GetAddress (void) const
+{
+  return m_addr;
+}
+
+void 
+Ipv6PacketInfoTag::SetRecvIf (uint32_t ifindex)
+{
+  m_ifindex = ifindex;
+}
+
+uint32_t 
+Ipv6PacketInfoTag::GetRecvIf (void) const
+{
+  return m_ifindex;
+}
+
+void 
+Ipv6PacketInfoTag::SetHoplimit (uint8_t ttl)
+{
+  m_hoplimit = ttl;
+}
+
+uint8_t 
+Ipv6PacketInfoTag::GetHoplimit (void) const
+{
+  return m_hoplimit;
+}
+
+void 
+Ipv6PacketInfoTag::SetTrafficClass (uint8_t tclass)
+{
+  m_tclass = tclass;
+}
+
+uint8_t 
+Ipv6PacketInfoTag::GetTrafficClass (void) const
+{
+  return m_tclass;
+}
+
+
+TypeId
+Ipv6PacketInfoTag::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::Ipv6PacketInfoTag")
+    .SetParent<Tag> ()
+    .AddConstructor<Ipv6PacketInfoTag> ()
+    ;
+  return tid;
+}
+TypeId
+Ipv6PacketInfoTag::GetInstanceTypeId (void) const
+{
+  return GetTypeId ();
+}
+
+uint32_t 
+Ipv6PacketInfoTag::GetSerializedSize (void) const
+{ 
+  return 16
+    + sizeof (uint8_t)
+    + sizeof (uint8_t)
+    + sizeof (uint8_t);
+}
+void 
+Ipv6PacketInfoTag::Serialize (TagBuffer i) const
+{ 
+  uint8_t buf[16];
+  m_addr.Serialize (buf);
+  i.Write (buf, 16);
+  i.WriteU8 (m_ifindex);
+  i.WriteU8 (m_hoplimit);
+  i.WriteU8 (m_tclass);
+}
+void 
+Ipv6PacketInfoTag::Deserialize (TagBuffer i)
+{ 
+  uint8_t buf[16];
+  i.Read (buf, 16);
+  m_addr.Deserialize (buf);
+  m_ifindex = i.ReadU8 ();
+  m_hoplimit = i.ReadU8 ();
+  m_tclass = i.ReadU8 ();
+}
+void
+Ipv6PacketInfoTag::Print (std::ostream &os) const
+{
+  os << "Ipv6 PKTINFO [DestAddr: " << m_addr;
+  os << ", RecvIf:" << (uint32_t) m_ifindex;
+  os << ", TTL:" << (uint32_t) m_hoplimit;
+  os << ", TClass:" << (uint32_t) m_tclass;
+  os << "] ";
+}
+}//namespace ns3
+
+//-----------------------------------------------------------------------------
+// Unit tests
+//-----------------------------------------------------------------------------
+
+#include "ns3/log.h"
+#include "ns3/abort.h"
+#include "ns3/attribute.h"
+#include "ns3/simple-net-device.h"
+#include "ns3/object-factory.h"
+#include "ns3/socket-factory.h"
+#include "ns3/udp-socket-factory.h"
+#include "ns3/udp-socket.h"
+#include "ns3/ipv6-l3-protocol.h"
+#include "ns3/ipv6-raw-socket-factory.h"
+#include "ns3/ipv6-interface.h"
+#include "ns3/icmpv6-l4-protocol.h"
+#include "ns3/ipv6-static-routing.h"
+#include "ns3/ipv6-list-routing.h"
+#include "ns3/inet6-socket-address.h"
+#include "ns3/simulator.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/node.h"
+
+namespace ns3 {
+
+static void
+AddInternetStack (Ptr<Node> node)
+{
+  Ptr<Ipv6L3Protocol> ipv6 = CreateObject<Ipv6L3Protocol> ();
+  Ptr<Icmpv6L4Protocol> icmpv6 = CreateObject<Icmpv6L4Protocol> ();
+  node->AggregateObject (ipv6);
+  node->AggregateObject (icmpv6);
+  ipv6->Insert (icmpv6);
+  icmpv6->SetAttribute ("DAD", BooleanValue (false));
+
+  //Routing for Ipv6
+  Ptr<Ipv6ListRouting> ipv6Routing = CreateObject<Ipv6ListRouting> ();
+  ipv6->SetRoutingProtocol (ipv6Routing);
+  Ptr<Ipv6StaticRouting> ipv6staticRouting = CreateObject<Ipv6StaticRouting> ();
+  ipv6Routing->AddRoutingProtocol (ipv6staticRouting, 0);
+
+  /* register IPv6 extensions and options */
+  ipv6->RegisterExtensions ();
+  ipv6->RegisterOptions ();
+}
+
+class Ipv6PacketInfoTagTest: public TestCase 
+{
+public:
+  Ipv6PacketInfoTagTest ();
+private:
+  virtual void DoRun (void);
+  void RxCb (Ptr<Socket> socket);
+  void DoSendData (Ptr<Socket> socket, std::string to);
+};
+
+Ipv6PacketInfoTagTest::Ipv6PacketInfoTagTest ()
+  : TestCase ("Ipv6PacketInfoTagTest") 
+{}
+
+void
+Ipv6PacketInfoTagTest::RxCb (Ptr<Socket> socket)
+{
+  uint32_t availableData;
+  Ptr<Packet> m_receivedPacket;
+
+  availableData = socket->GetRxAvailable ();
+  m_receivedPacket = socket->Recv (std::numeric_limits<uint32_t>::max(), 0);
+  NS_ASSERT (availableData == m_receivedPacket->GetSize ());
+
+  Ipv6PacketInfoTag tag;
+  bool found;
+  found = m_receivedPacket->RemovePacketTag (tag);
+  NS_ASSERT (found);
+  tag.Print (std::cout);
+  std::cout << std::endl;
+}
+
+void
+Ipv6PacketInfoTagTest::DoSendData (Ptr<Socket> socket, std::string to)
+{
+  Address realTo = Inet6SocketAddress (Ipv6Address (to.c_str()), 200);
+  if (DynamicCast<UdpSocket> (socket) != 0)
+    {
+      NS_TEST_EXPECT_MSG_EQ (socket->SendTo (Create<Packet> (123), 0, realTo),
+                             123, "XXX");
+    }
+  // Should only Ipv6RawSock
+  else
+    {
+      socket->SendTo (Create<Packet> (123), 0, realTo);
+    }
+}
+
+void
+Ipv6PacketInfoTagTest::DoRun (void)
+{
+  Ptr<Node> node0 = CreateObject<Node> ();
+  Ptr<Node> node1 = CreateObject<Node> ();
+
+  Ptr<SimpleNetDevice> device = CreateObject<SimpleNetDevice> ();
+  Ptr<SimpleNetDevice> device2 = CreateObject<SimpleNetDevice> ();
+
+  // For Node 0
+  node0->AddDevice (device);
+  AddInternetStack (node0);
+  Ptr<Ipv6> ipv6 = node0->GetObject<Ipv6> ();
+
+  uint32_t index = ipv6->AddInterface (device);
+  Ipv6InterfaceAddress ifaceAddr1 = Ipv6InterfaceAddress (Ipv6Address("2000:1000:0:2000::1"), 
+                                                          Ipv6Prefix(64));
+  ipv6->AddAddress (index, ifaceAddr1);
+  ipv6->SetMetric (index, 1);
+  ipv6->SetUp (index);
+
+  // For Node 1
+  node1->AddDevice (device2);
+  AddInternetStack (node1);
+  ipv6 = node1->GetObject<Ipv6> ();
+
+  index = ipv6->AddInterface (device2);
+  Ipv6InterfaceAddress ifaceAddr2 = Ipv6InterfaceAddress (Ipv6Address("2000:1000:0:2000::2"), 
+                                                          Ipv6Prefix(64));
+  ipv6->AddAddress (index, ifaceAddr2);
+  ipv6->SetMetric (index, 1);
+  ipv6->SetUp (index);
+
+  // ipv6 w rawsocket
+  Ptr<SocketFactory> factory = node0->GetObject<SocketFactory> (Ipv6RawSocketFactory::GetTypeId ());
+  Ptr<Socket> socket = factory->CreateSocket ();
+  Inet6SocketAddress local =  Inet6SocketAddress (Ipv6Address::GetAny (), 0);
+  socket->SetAttribute ("Protocol", UintegerValue (Ipv6Header::IPV6_ICMPV6));
+  socket->Bind (local);
+  socket->SetRecvPktInfo (true);
+  socket->SetRecvCallback (MakeCallback (&ns3::Ipv6PacketInfoTagTest::RxCb, this));
+
+  // receive on loopback 
+  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "::1");
+  Simulator::Run ();
+
+  Ptr<SocketFactory> factory2 = node1->GetObject<SocketFactory> (Ipv6RawSocketFactory::GetTypeId ());
+  Ptr<Socket> socket2 = factory2->CreateSocket ();
+  std::stringstream dst;
+  dst << ifaceAddr1.GetAddress ();
+  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, 
+                                  dst.str ());
+  Simulator::Run ();
+
+#ifdef UDP6_SUPPORTED
+  // IPv6 test
+  factory = node0->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
+  socket = factory->CreateSocket ();
+  local =  Inet6SocketAddress (Ipv6Address::GetAny (), 200);
+  socket->Bind (local);
+  socket->SetRecvPktInfo (true);
+  socket->SetRecvCallback (MakeCallback (&ns3::Ipv6PacketInfoTagTest::RxCb, this));
+
+  // receive on loopback 
+  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "::1");
+  Simulator::Run ();
+
+  factory2 = node1->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
+  socket2 = factory2->CreateSocket ();
+  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
+                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
+  Simulator::Run ();
+
+#endif  // UDP6_SUPPORTED
+
+  Simulator::Destroy ();
+  // IPv6 test
+}
+
+static class Ipv6PacketInfoTagTestSuite : public TestSuite
+{
+public:
+  Ipv6PacketInfoTagTestSuite ();
+private:
+} g_packetinfotagTests;
+
+Ipv6PacketInfoTagTestSuite::Ipv6PacketInfoTagTestSuite ()
+  : TestSuite ("ipv6-packet-info-tag", UNIT)
+{
+  AddTestCase (new Ipv6PacketInfoTagTest ());
+}
+
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/internet-stack/ipv6-packet-info-tag.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,94 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Hajime Tazaki
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
+ */
+
+#ifndef __IPV6_PACKET_INFO_TAG_H__
+#define __IPV6_PACKET_INFO_TAG_H__
+
+#include "ns3/tag.h"
+
+namespace ns3 {
+
+
+class Node;
+class Packet;
+
+/**
+ * \brief This class implements a tag that carries socket ancillary 
+ * data to the socket interface. This is used like 
+ * socket option of IP_PKTINFO/IPV6_PKTINFO in RFC 3542
+ * See: http://tools.ietf.org/html/rfc3542
+ *
+ * This tag in the send direction is presently not enabled but we
+ * would accept a patch along those lines in the future. To include
+ * the nexthop in the send direction would increase the size of the
+ * tag beyond 20 bytes, so in that case, we recommend that an
+ * additional tag be used to carry the IPv6 next hop address.
+ */
+class Ipv6PacketInfoTag : public Tag
+{
+public:
+  Ipv6PacketInfoTag ();
+  // Implemented, but not used in the stack yet
+  void SetAddress (Ipv6Address addr);
+  // Implemented, but not used in the stack yet
+  Ipv6Address GetAddress (void) const;
+  void SetRecvIf (uint32_t ifindex);
+  uint32_t GetRecvIf (void) const;
+  // Implemented, but not used in the stack yet
+  void SetHoplimit (uint8_t ttl);
+  // Implemented, but not used in the stack yet
+  uint8_t GetHoplimit (void) const;
+  // Implemented, but not used in the stack yet
+  void SetTrafficClass (uint8_t tclass);
+  // Implemented, but not used in the stack yet
+  uint8_t GetTrafficClass (void) const;
+
+  static TypeId GetTypeId (void);  
+  virtual TypeId GetInstanceTypeId (void) const;
+  virtual uint32_t GetSerializedSize (void) const;
+  virtual void Serialize (TagBuffer i) const;
+  virtual void Deserialize (TagBuffer i);
+  virtual void Print (std::ostream &os) const;
+
+private:
+  /* 
+   * RFC 3542 includes
+   * for outgoing packet,
+   *  1.  the source IPv6 address,
+   *  2.  the outgoing interface index,
+   *  3.  the outgoing hop limit,
+   *  4.  the next hop address, and
+   *  5.  the outgoing traffic class value.
+   *
+   * for incoming packet,
+   *  1.  the destination IPv6 address,
+   *  2.  the arriving interface index,
+   *  3.  the arriving hop limit, and
+   *  4.  the arriving traffic class value.
+  */
+  Ipv6Address m_addr;
+  uint8_t m_ifindex;
+  uint8_t m_hoplimit;
+  uint8_t m_tclass;
+};
+} //namespace ns3
+
+#endif /* __IPV6_PACKET_INFO_TAG_H__ */
+
--- a/src/internet-stack/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/internet-stack/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -145,6 +145,8 @@
         'tcp-newreno.cc',
         'tcp-rx-buffer.cc',
         'tcp-tx-buffer.cc',
+        'ipv4-packet-info-tag.cc',
+        'ipv6-packet-info-tag.cc',
         ]
 
     headers = bld.new_task_gen('ns3header')
@@ -172,6 +174,8 @@
         'ipv6-interface.h',
         'ndisc-cache.h',
         'loopback-net-device.h',
+        'ipv4-packet-info-tag.h',
+        'ipv6-packet-info-tag.h',
        ]
 
     if bld.env['NSC_ENABLED']:
--- a/src/mobility/steady-state-random-waypoint-mobility-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/mobility/steady-state-random-waypoint-mobility-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -22,8 +22,6 @@
 #include "ns3/double.h"
 #include "steady-state-random-waypoint-mobility-model.h"
 #include "ns3/test.h"
-#include "ns3/node-container.h"
-#include "ns3/mobility-helper.h"
 #include "ns3/simulator.h"
 
 namespace ns3 {
@@ -272,8 +270,8 @@
   virtual ~SteadyStateRandomWaypointTest () {}
 
 private:
-  NodeContainer nodes;
-  double NodeCount;
+  std::vector<Ptr<MobilityModel> > mobilityStack;
+  double count;
 private:
   virtual void DoRun (void);
   void DistribCompare ();
@@ -286,21 +284,29 @@
 
   // Total simulation time, seconds
   double totalTime = 1000;
-  // Create nodes
-  NodeCount = 10000;
-  nodes.Create ((uint32_t) NodeCount);
-  // Installmobility
-  MobilityHelper mobility;
-  mobility.SetMobilityModel ("ns3::SteadyStateRandomWaypointMobilityModel",
-                             "MinSpeed", DoubleValue (0.01),
-                             "MaxSpeed", DoubleValue (20.0),
-                             "MinPause", DoubleValue (0.0),
-                             "MaxPause", DoubleValue (0.0),
-                             "MinX", DoubleValue (0),
-                             "MaxX", DoubleValue (1000),
-                             "MinY", DoubleValue (0),
-                             "MaxY", DoubleValue (600));
-  mobility.Install (nodes);
+
+  ObjectFactory mobilityFactory;
+  mobilityFactory.SetTypeId ("ns3::SteadyStateRandomWaypointMobilityModel");
+  mobilityFactory.Set ("MinSpeed", DoubleValue (0.01));
+  mobilityFactory.Set ("MaxSpeed", DoubleValue (20.0));
+  mobilityFactory.Set ("MinPause", DoubleValue (0.0));
+  mobilityFactory.Set ("MaxPause", DoubleValue (0.0));
+  mobilityFactory.Set ("MinX", DoubleValue (0));
+  mobilityFactory.Set ("MaxX", DoubleValue (1000));
+  mobilityFactory.Set ("MinY", DoubleValue (0));
+  mobilityFactory.Set ("MaxY", DoubleValue (600));
+
+  // Populate the vector of mobility models.
+  count = 10000;
+  for (uint32_t i = 0; i < count; i++)
+    {
+      // Create a new mobility model.
+      Ptr<MobilityModel> model = mobilityFactory.Create ()->GetObject<MobilityModel> ();
+
+      // Add this mobility model to the stack.
+      mobilityStack.push_back (model);
+      Simulator::Schedule (Seconds (0.0), &Object::Start, model);
+    } 
 
   Simulator::Schedule (Seconds (0.001), & SteadyStateRandomWaypointTest::DistribCompare, this);
   Simulator::Schedule (Seconds (totalTime), & SteadyStateRandomWaypointTest::DistribCompare, this);
@@ -312,35 +318,35 @@
 void
 SteadyStateRandomWaypointTest::DistribCompare ()
 {
-  Ptr<MobilityModel> model;
   double velocity;
   double sum_x = 0;
   double sum_y = 0;
   double sum_v = 0;
-  NodeContainer::Iterator i;
-  for (i = nodes.Begin (); i != nodes.End (); ++i)
+  std::vector<Ptr<MobilityModel> >::iterator i;
+  Ptr<MobilityModel> model;
+  for (i = mobilityStack.begin (); i != mobilityStack.end (); ++i)
     {
-      model = (*i)->GetObject<MobilityModel> ();
+      model = (*i);
       velocity = sqrt (pow (model->GetVelocity().x, 2) + pow (model->GetVelocity().y, 2));
       sum_x += model->GetPosition().x;
       sum_y += model->GetPosition().y;
       sum_v += velocity;
     }
-  double mean_x = sum_x / NodeCount;
-  double mean_y = sum_y / NodeCount;
-  double mean_v = sum_v / NodeCount;
+  double mean_x = sum_x / count;
+  double mean_y = sum_y / count;
+  double mean_v = sum_v / count;
 
-  NS_TEST_EXPECT_MSG_EQ_TOL (500, mean_x, 25.0, "Got unexpected x-position mean value");
-  NS_TEST_EXPECT_MSG_EQ_TOL (300, mean_y, 15.0, "Got unexpected y-position mean value");
-  NS_TEST_EXPECT_MSG_EQ_TOL (2.6, mean_v, 0.13, "Got unexpected velocity mean value");
+  NS_TEST_EXPECT_MSG_EQ_TOL (mean_x, 500, 25.0, "Got unexpected x-position mean value");
+  NS_TEST_EXPECT_MSG_EQ_TOL (mean_y, 300, 15.0, "Got unexpected y-position mean value");
+  NS_TEST_EXPECT_MSG_EQ_TOL (mean_v, 2.6, 0.13, "Got unexpected velocity mean value");
 
   sum_x = 0;
   sum_y = 0;
   sum_v = 0;
   double tmp;
-  for (i = nodes.Begin (); i != nodes.End (); ++i)
+  for (i = mobilityStack.begin (); i != mobilityStack.end (); ++i)
     {
-      model = (*i)->GetObject<MobilityModel> ();
+      model = (*i);
       velocity = sqrt (pow (model->GetVelocity().x, 2) + pow (model->GetVelocity().y, 2));
       tmp = model->GetPosition().x - mean_x;
       sum_x += tmp * tmp;
@@ -349,13 +355,13 @@
       tmp = velocity - mean_v;
       sum_v += tmp * tmp;
     }
-  double dev_x = std::sqrt (sum_x / (NodeCount - 1));
-  double dev_y = std::sqrt (sum_y / (NodeCount - 1));
-  double dev_v = std::sqrt (sum_v / (NodeCount - 1));
+  double dev_x = std::sqrt (sum_x / (count - 1));
+  double dev_y = std::sqrt (sum_y / (count - 1));
+  double dev_v = std::sqrt (sum_v / (count - 1));
 
-  NS_TEST_EXPECT_MSG_EQ_TOL (230, dev_x, 10.0, "Got unexpected x-position standard deviation");
-  NS_TEST_EXPECT_MSG_EQ_TOL (140, dev_y, 7.0, "Got unexpected y-position standard deviation");
-  NS_TEST_EXPECT_MSG_EQ_TOL (4.4, dev_v, 0.22, "Got unexpected velocity standard deviation");
+  NS_TEST_EXPECT_MSG_EQ_TOL (dev_x, 230, 10.0, "Got unexpected x-position standard deviation");
+  NS_TEST_EXPECT_MSG_EQ_TOL (dev_y, 140, 7.0, "Got unexpected y-position standard deviation");
+  NS_TEST_EXPECT_MSG_EQ_TOL (dev_v, 4.4, 0.22, "Got unexpected velocity standard deviation");
 }
 
 struct SteadyStateRandomWaypointTestSuite : public TestSuite
--- a/src/mobility/waypoint-mobility-model.cc	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/mobility/waypoint-mobility-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -26,8 +26,6 @@
 #include "waypoint-mobility-model.h"
 #include "ns3/config.h"
 #include "ns3/test.h"
-#include "ns3/node-container.h"
-#include "ns3/mobility-helper.h"
 
 NS_LOG_COMPONENT_DEFINE ("WaypointMobilityModel");
 
@@ -229,8 +227,8 @@
   }
 
 private:
-  NodeContainer nodes;
-  uint32_t nodeCount;
+  std::vector<Ptr<MobilityModel> > mobilityStack;
+  uint32_t mobilityCount;
   uint32_t waypointCount;
   std::deque<Waypoint> waypoints;
   bool lazyNotify;
@@ -242,13 +240,23 @@
 void
 WaypointMobilityModelNotifyTest::DoRun (void)
 {
-  nodeCount = 1;
+  mobilityCount = 1;
   waypointCount = 100;
-  nodes.Create (nodeCount);
-  MobilityHelper mobility;
-  mobility.SetMobilityModel ("ns3::WaypointMobilityModel",
-                             "LazyNotify", BooleanValue (lazyNotify));
-  mobility.Install (nodes);
+
+  ObjectFactory mobilityFactory;
+  mobilityFactory.SetTypeId ("ns3::WaypointMobilityModel");
+  mobilityFactory.Set ("LazyNotify", BooleanValue (lazyNotify));
+
+  // Populate the vector of mobility models.
+  for (uint32_t i = 0; i < mobilityCount; i++)
+    {
+      // Create a new mobility model.
+      Ptr<MobilityModel> model = mobilityFactory.Create ()->GetObject<MobilityModel> ();
+
+      // Add this mobility model to the stack.
+      mobilityStack.push_back (model);
+      Simulator::Schedule (Seconds (0.0), &Object::Start, model);
+    } 
 
   Waypoint wpt (Seconds (0.0), Vector (0.0, 0.0, 0.0));
 
@@ -260,7 +268,8 @@
     }
 
   // Add the same waypoints to each node
-  for ( NodeContainer::Iterator i = nodes.Begin (); i != nodes.End (); ++i )
+  std::vector<Ptr<MobilityModel> >::iterator i;
+  for (i = mobilityStack.begin (); i != mobilityStack.end (); ++i)
     {
       Ptr<WaypointMobilityModel> mob = (*i)->GetObject<WaypointMobilityModel> ();
 
@@ -286,7 +295,8 @@
 void
 WaypointMobilityModelNotifyTest::ForceUpdates (void)
 {
-  for ( NodeContainer::Iterator i = nodes.Begin (); i != nodes.End (); ++i )
+  std::vector<Ptr<MobilityModel> >::iterator i;
+  for (i = mobilityStack.begin (); i != mobilityStack.end (); ++i)
     {
       Ptr<WaypointMobilityModel> mob = (*i)->GetObject<WaypointMobilityModel> ();
       mob->Update ();
--- a/src/node/ipv4-packet-info-tag.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 Hajime Tazaki
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
- */
-
-
-#include <stdint.h>
-#include "ns3/ipv4-address.h"
-#include "ns3/test.h"
-#include "ipv4-packet-info-tag.h"
-
-namespace ns3 {
-
-Ipv4PacketInfoTag::Ipv4PacketInfoTag ()  
-  : m_addr (Ipv4Address ()),
-    m_spec_dst (Ipv4Address ()),
-    m_ifindex (0),
-    m_ttl (0)
-{
-}
-
-void 
-Ipv4PacketInfoTag::SetAddress (Ipv4Address addr)
-{
-  m_addr = addr;
-}
-
-Ipv4Address
-Ipv4PacketInfoTag::GetAddress (void) const
-{
-  return m_addr;
-}
-
-void 
-Ipv4PacketInfoTag::SetLocalAddress (Ipv4Address addr)
-{
-  m_spec_dst = addr;
-}
-
-Ipv4Address
-Ipv4PacketInfoTag::GetLocalAddress (void) const
-{
-  return m_spec_dst;
-}
-
-void 
-Ipv4PacketInfoTag::SetRecvIf (uint32_t ifindex)
-{
-  m_ifindex = ifindex;
-}
-
-uint32_t 
-Ipv4PacketInfoTag::GetRecvIf (void) const
-{
-  return m_ifindex;
-}
-
-void 
-Ipv4PacketInfoTag::SetTtl (uint8_t ttl)
-{
-  m_ttl = ttl;
-}
-
-uint8_t 
-Ipv4PacketInfoTag::GetTtl (void) const
-{
-  return m_ttl;
-}
-
-
-
-TypeId
-Ipv4PacketInfoTag::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::Ipv4PacketInfoTag")
-    .SetParent<Tag> ()
-    .AddConstructor<Ipv4PacketInfoTag> ()
-    ;
-  return tid;
-}
-TypeId
-Ipv4PacketInfoTag::GetInstanceTypeId (void) const
-{
-  return GetTypeId ();
-}
-
-uint32_t 
-Ipv4PacketInfoTag::GetSerializedSize (void) const
-{ 
-  return 4 + 4 
-    + sizeof (uint32_t)
-    + sizeof (uint8_t);
-}
-void 
-Ipv4PacketInfoTag::Serialize (TagBuffer i) const
-{ 
-  uint8_t buf[4];
-  m_addr.Serialize (buf);
-  i.Write (buf, 4);
-  m_spec_dst.Serialize (buf);
-  i.Write (buf, 4);
-  i.WriteU32 (m_ifindex);
-  i.WriteU8 (m_ttl);
-}
-void 
-Ipv4PacketInfoTag::Deserialize (TagBuffer i)
-{ 
-  uint8_t buf[4];
-  i.Read (buf, 4);
-  m_addr.Deserialize (buf);
-  i.Read (buf, 4);
-  m_spec_dst.Deserialize (buf);
-  m_ifindex = i.ReadU32 ();
-  m_ttl = i.ReadU8 ();
-}
-void
-Ipv4PacketInfoTag::Print (std::ostream &os) const
-{
-  os << "Ipv4 PKTINFO [DestAddr: " << m_addr;
-  os << ", Local Address:" << m_spec_dst;
-  os << ", RecvIf:" << (uint32_t) m_ifindex;
-  os << ", TTL:" << (uint32_t) m_ttl;
-  os << "] ";
-}
-}//namespace ns3
-
-//-----------------------------------------------------------------------------
-// Unit tests
-//-----------------------------------------------------------------------------
-
-#include "ns3/log.h"
-#include "ns3/abort.h"
-#include "ns3/attribute.h"
-#include "ns3/object-factory.h"
-#include "ns3/internet-stack-helper.h"
-#include "ns3/ipv4-address-helper.h"
-#include "ns3/csma-helper.h"
-#include "ns3/node-container.h"
-#include "ns3/object-factory.h"
-#include "ns3/socket-factory.h"
-#include "ns3/udp-socket-factory.h"
-#include "ns3/udp-socket.h"
-#include "ns3/ipv4-raw-socket-factory.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/simulator.h"
-
-namespace ns3 {
-
-class Ipv4PacketInfoTagTest: public TestCase 
-{
-public:
-  Ipv4PacketInfoTagTest ();
-private:
-  virtual void DoRun (void);
-  void RxCb (Ptr<Socket> socket);
-  void DoSendData (Ptr<Socket> socket, std::string to);
-};
-
-Ipv4PacketInfoTagTest::Ipv4PacketInfoTagTest ()
-  : TestCase ("Ipv4PacketInfoTagTest") 
-{}
-
-void
-Ipv4PacketInfoTagTest::RxCb (Ptr<Socket> socket)
-{
-  uint32_t availableData;
-  Ptr<Packet> m_receivedPacket;
-
-  availableData = socket->GetRxAvailable ();
-  m_receivedPacket = socket->Recv (std::numeric_limits<uint32_t>::max(), 0);
-  NS_ASSERT (availableData == m_receivedPacket->GetSize ());
-
-  Ipv4PacketInfoTag tag;
-  bool found;
-  found = m_receivedPacket->RemovePacketTag (tag);
-  NS_ASSERT (found);
-  tag.Print (std::cout);
-}
-
-void
-Ipv4PacketInfoTagTest::DoSendData (Ptr<Socket> socket, std::string to)
-{
-  Address realTo = InetSocketAddress (Ipv4Address (to.c_str()), 200);
-  if (DynamicCast<UdpSocket> (socket) != 0)
-    {
-      NS_TEST_EXPECT_MSG_EQ (socket->SendTo (Create<Packet> (123), 0, realTo),
-                             123, "XXX");
-    }
-  // Should only Ipv4RawSock
-  else
-    {
-      socket->SendTo (Create<Packet> (123), 0, realTo);
-    }
-}
-
-void
-Ipv4PacketInfoTagTest::DoRun (void)
-{
-  NodeContainer n;
-  n.Create (2);
-
-  InternetStackHelper internet;
-  internet.Install (n);
-
-  CsmaHelper csma;
-  NetDeviceContainer d = csma.Install (n);
-
-  Ipv4AddressHelper ipv4;
-  ipv4.SetBase ("10.1.1.0", "255.255.255.0");
-  Ipv4InterfaceContainer i = ipv4.Assign (d);
-
-  // IPv4 test
-  Ptr<SocketFactory> factory = n.Get (0)->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
-  Ptr<Socket> socket = factory->CreateSocket ();
-  InetSocketAddress local =  InetSocketAddress (Ipv4Address::GetAny (), 200);
-  socket->Bind (local);
-  socket->SetRecvPktInfo (true);
-  socket->SetRecvCallback (MakeCallback (&ns3::Ipv4PacketInfoTagTest::RxCb, this));
-
-  // receive on loopback 
-  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "127.0.0.1");
-  Simulator::Run ();
-
-  // send from node1 and recved via csma
-  Ptr<SocketFactory> factory2 = n.Get (1)->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
-  Ptr<Socket> socket2 = factory2->CreateSocket ();
-  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
-  Simulator::Run ();
-
-  // ipv4 w rawsocket
-  factory = n.Get (0)->GetObject<SocketFactory> (Ipv4RawSocketFactory::GetTypeId ());
-  socket = factory->CreateSocket ();
-  local =  InetSocketAddress (Ipv4Address::GetAny (), 0);
-  socket->Bind (local);
-  socket->SetRecvPktInfo (true);
-  socket->SetRecvCallback (MakeCallback (&ns3::Ipv4PacketInfoTagTest::RxCb, this));
-
-  // receive on loopback 
-  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "127.0.0.1");
-  Simulator::Run ();
-
-  // send from node1 and recved via csma
-  factory2 = n.Get (1)->GetObject<SocketFactory> (Ipv4RawSocketFactory::GetTypeId ());
-  socket2 = factory2->CreateSocket ();
-  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv4PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
-  Simulator::Run ();
-  Simulator::Destroy ();
-}
-
-static class Ipv4PacketInfoTagTestSuite : public TestSuite
-{
-public:
-  Ipv4PacketInfoTagTestSuite ();
-private:
-} g_packetinfotagTests;
-
-Ipv4PacketInfoTagTestSuite::Ipv4PacketInfoTagTestSuite ()
-  : TestSuite ("ipv4-packet-info-tag", UNIT)
-{
-  AddTestCase (new Ipv4PacketInfoTagTest ());
-}
-
-
-}
--- a/src/node/ipv4-packet-info-tag.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 Hajime Tazaki
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
- */
-
-#ifndef __IPV4_PACKET_INFO_TAG_H__
-#define __IPV4_PACKET_INFO_TAG_H__
-
-#include "ns3/tag.h"
-
-namespace ns3 {
-
-
-class Node;
-class Packet;
-
-/**
- * \brief This class implements Linux struct pktinfo 
- * in order to deliver ancillary information to the socket interface.
- * This is used with socket option such as IP_PKTINFO, IP_RECVTTL, 
- * IP_RECVTOS. See linux manpage ip(7).
- *
- * This tag in the send direction is presently not enabled but we
- * would accept a patch along those lines in the future.
- */
-class Ipv4PacketInfoTag : public Tag
-{
-public:
-  Ipv4PacketInfoTag ();
-  // Implemented, but not used in the stack yet
-  void SetAddress (Ipv4Address addr);
-  // Implemented, but not used in the stack yet
-  Ipv4Address GetAddress (void) const;
-  // This corresponds to "ipi_spec_dst" in struct in_pktinfo.
-  // Implemented, but not used in the stack yet
-  void SetLocalAddress (Ipv4Address addr);
-  // This corresponds to "ipi_spec_dst" in struct in_pktinfo.
-  // Implemented, but not used in the stack yet
-  Ipv4Address GetLocalAddress (void) const;
-  void SetRecvIf (uint32_t ifindex);
-  uint32_t GetRecvIf (void) const;
-  // Implemented, but not used in the stack yet
-  void SetTtl (uint8_t ttl);
-  // Implemented, but not used in the stack yet
-  uint8_t GetTtl (void) const;
-
-  static TypeId GetTypeId (void);  
-  virtual TypeId GetInstanceTypeId (void) const;
-  virtual uint32_t GetSerializedSize (void) const;
-  virtual void Serialize (TagBuffer i) const;
-  virtual void Deserialize (TagBuffer i);
-  virtual void Print (std::ostream &os) const;
-
-private:
-  // Linux IP_PKTINFO ip(7) implementation
-  // 
-  // struct in_pktinfo {
-  //   unsigned int   ipi_ifindex;  /* Interface index */
-  //   struct in_addr ipi_spec_dst; /* Local address */
-  //   struct in_addr ipi_addr;     /* Header Destination
-  //                                   address */
-  // };
-
-  Ipv4Address m_addr;
-  Ipv4Address m_spec_dst;
-  uint32_t m_ifindex;
-
-  // Uset for IP_RECVTTL, though not implemented yet.
-  uint8_t m_ttl;
-};
-} //namespace ns3
-
-#endif /* __IPV4_PACKET_INFO_TAG_H__ */
-
--- a/src/node/ipv6-packet-info-tag.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 Hajime Tazaki
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
- */
-
-
-#include <stdint.h>
-#include "ns3/ipv6-address.h"
-#include "ns3/test.h"
-#include "ipv6-packet-info-tag.h"
-
-namespace ns3 {
-
-Ipv6PacketInfoTag::Ipv6PacketInfoTag ()  
-  : m_addr (Ipv6Address ()),
-    m_ifindex (0),
-    m_hoplimit (0),
-    m_tclass (0)
-{
-}
-
-void 
-Ipv6PacketInfoTag::SetAddress (Ipv6Address addr)
-{
-  m_addr = addr;
-}
-
-Ipv6Address
-Ipv6PacketInfoTag::GetAddress (void) const
-{
-  return m_addr;
-}
-
-void 
-Ipv6PacketInfoTag::SetRecvIf (uint32_t ifindex)
-{
-  m_ifindex = ifindex;
-}
-
-uint32_t 
-Ipv6PacketInfoTag::GetRecvIf (void) const
-{
-  return m_ifindex;
-}
-
-void 
-Ipv6PacketInfoTag::SetHoplimit (uint8_t ttl)
-{
-  m_hoplimit = ttl;
-}
-
-uint8_t 
-Ipv6PacketInfoTag::GetHoplimit (void) const
-{
-  return m_hoplimit;
-}
-
-void 
-Ipv6PacketInfoTag::SetTrafficClass (uint8_t tclass)
-{
-  m_tclass = tclass;
-}
-
-uint8_t 
-Ipv6PacketInfoTag::GetTrafficClass (void) const
-{
-  return m_tclass;
-}
-
-
-TypeId
-Ipv6PacketInfoTag::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::Ipv6PacketInfoTag")
-    .SetParent<Tag> ()
-    .AddConstructor<Ipv6PacketInfoTag> ()
-    ;
-  return tid;
-}
-TypeId
-Ipv6PacketInfoTag::GetInstanceTypeId (void) const
-{
-  return GetTypeId ();
-}
-
-uint32_t 
-Ipv6PacketInfoTag::GetSerializedSize (void) const
-{ 
-  return 16
-    + sizeof (uint8_t)
-    + sizeof (uint8_t)
-    + sizeof (uint8_t);
-}
-void 
-Ipv6PacketInfoTag::Serialize (TagBuffer i) const
-{ 
-  uint8_t buf[16];
-  m_addr.Serialize (buf);
-  i.Write (buf, 16);
-  i.WriteU8 (m_ifindex);
-  i.WriteU8 (m_hoplimit);
-  i.WriteU8 (m_tclass);
-}
-void 
-Ipv6PacketInfoTag::Deserialize (TagBuffer i)
-{ 
-  uint8_t buf[16];
-  i.Read (buf, 16);
-  m_addr.Deserialize (buf);
-  m_ifindex = i.ReadU8 ();
-  m_hoplimit = i.ReadU8 ();
-  m_tclass = i.ReadU8 ();
-}
-void
-Ipv6PacketInfoTag::Print (std::ostream &os) const
-{
-  os << "Ipv6 PKTINFO [DestAddr: " << m_addr;
-  os << ", RecvIf:" << (uint32_t) m_ifindex;
-  os << ", TTL:" << (uint32_t) m_hoplimit;
-  os << ", TClass:" << (uint32_t) m_tclass;
-  os << "] ";
-}
-}//namespace ns3
-
-//-----------------------------------------------------------------------------
-// Unit tests
-//-----------------------------------------------------------------------------
-
-#include "ns3/log.h"
-#include "ns3/abort.h"
-#include "ns3/attribute.h"
-#include "ns3/object-factory.h"
-#include "ns3/internet-stack-helper.h"
-#include "ns3/ipv6-address-helper.h"
-#include "ns3/csma-helper.h"
-#include "ns3/node-container.h"
-#include "ns3/object-factory.h"
-#include "ns3/socket-factory.h"
-#include "ns3/udp-socket-factory.h"
-#include "ns3/udp-socket.h"
-#include "ns3/ipv6-raw-socket-factory.h"
-#include "ns3/inet6-socket-address.h"
-#include "ns3/simulator.h"
-#include "ns3/uinteger.h"
-
-namespace ns3 {
-
-class Ipv6PacketInfoTagTest: public TestCase 
-{
-public:
-  Ipv6PacketInfoTagTest ();
-private:
-  virtual void DoRun (void);
-  void RxCb (Ptr<Socket> socket);
-  void DoSendData (Ptr<Socket> socket, std::string to);
-};
-
-Ipv6PacketInfoTagTest::Ipv6PacketInfoTagTest ()
-  : TestCase ("Ipv6PacketInfoTagTest") 
-{}
-
-void
-Ipv6PacketInfoTagTest::RxCb (Ptr<Socket> socket)
-{
-  uint32_t availableData;
-  Ptr<Packet> m_receivedPacket;
-
-  availableData = socket->GetRxAvailable ();
-  m_receivedPacket = socket->Recv (std::numeric_limits<uint32_t>::max(), 0);
-  NS_ASSERT (availableData == m_receivedPacket->GetSize ());
-
-  Ipv6PacketInfoTag tag;
-  bool found;
-  found = m_receivedPacket->RemovePacketTag (tag);
-  NS_ASSERT (found);
-  tag.Print (std::cout);
-  std::cout << std::endl;
-}
-
-void
-Ipv6PacketInfoTagTest::DoSendData (Ptr<Socket> socket, std::string to)
-{
-  Address realTo = Inet6SocketAddress (Ipv6Address (to.c_str()), 200);
-  if (DynamicCast<UdpSocket> (socket) != 0)
-    {
-      NS_TEST_EXPECT_MSG_EQ (socket->SendTo (Create<Packet> (123), 0, realTo),
-                             123, "XXX");
-    }
-  // Should only Ipv6RawSock
-  else
-    {
-      socket->SendTo (Create<Packet> (123), 0, realTo);
-    }
-}
-
-void
-Ipv6PacketInfoTagTest::DoRun (void)
-{
-  NodeContainer n;
-  n.Create (2);
-
-  InternetStackHelper internet;
-  internet.Install (n);
-
-  CsmaHelper csma;
-  NetDeviceContainer d = csma.Install (n);
-
-  Ipv6AddressHelper ipv6;
-  ipv6.NewNetwork(Ipv6Address("2000:1000:0:2000::"), Ipv6Prefix(64));
-  Ipv6InterfaceContainer i = ipv6.Assign (d);
-
-
-  // ipv6 w rawsocket
-  Ptr<SocketFactory> factory = n.Get (0)->GetObject<SocketFactory> (Ipv6RawSocketFactory::GetTypeId ());
-  Ptr<Socket> socket = factory->CreateSocket ();
-  Inet6SocketAddress local =  Inet6SocketAddress (Ipv6Address::GetAny (), 0);
-  socket->SetAttribute ("Protocol", UintegerValue (Ipv6Header::IPV6_ICMPV6));
-  socket->Bind (local);
-  socket->SetRecvPktInfo (true);
-  socket->SetRecvCallback (MakeCallback (&ns3::Ipv6PacketInfoTagTest::RxCb, this));
-
-  // receive on loopback 
-  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "::1");
-  Simulator::Run ();
-
-  // send from node1 and recved via csma
-  Ptr<SocketFactory> factory2 = n.Get (1)->GetObject<SocketFactory> (Ipv6RawSocketFactory::GetTypeId ());
-  Ptr<Socket> socket2 = factory2->CreateSocket ();
-  std::stringstream dst;
-  dst << i.GetAddress (0, 0);
-  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, 
-                                  dst.str ());
-  Simulator::Run ();
-
-#ifdef UDP6_SUPPORTED
-  // IPv6 test
-  factory = n.Get (0)->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
-  socket = factory->CreateSocket ();
-  local =  Inet6SocketAddress (Ipv6Address::GetAny (), 200);
-  socket->Bind (local);
-  socket->SetRecvPktInfo (true);
-  socket->SetRecvCallback (MakeCallback (&ns3::Ipv6PacketInfoTagTest::RxCb, this));
-
-  // receive on loopback 
-  Simulator::ScheduleWithContext (socket->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "::1");
-  Simulator::Run ();
-
-  // send from node1 and recved via csma
-  factory2 = n.Get (1)->GetObject<SocketFactory> (UdpSocketFactory::GetTypeId ());
-  socket2 = factory2->CreateSocket ();
-  Simulator::ScheduleWithContext (socket2->GetNode ()->GetId (), Seconds (0),
-                                  &Ipv6PacketInfoTagTest::DoSendData, this, socket, "10.1.1.1");
-  Simulator::Run ();
-
-#endif  // UDP6_SUPPORTED
-
-  Simulator::Destroy ();
-  // IPv6 test
-}
-
-static class Ipv6PacketInfoTagTestSuite : public TestSuite
-{
-public:
-  Ipv6PacketInfoTagTestSuite ();
-private:
-} g_packetinfotagTests;
-
-Ipv6PacketInfoTagTestSuite::Ipv6PacketInfoTagTestSuite ()
-  : TestSuite ("ipv6-packet-info-tag", UNIT)
-{
-  AddTestCase (new Ipv6PacketInfoTagTest ());
-}
-
-
-}
-
--- a/src/node/ipv6-packet-info-tag.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2010 Hajime Tazaki
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Hajime Tazaki <tazaki@sfc.wide.ad.jp>
- */
-
-#ifndef __IPV6_PACKET_INFO_TAG_H__
-#define __IPV6_PACKET_INFO_TAG_H__
-
-#include "ns3/tag.h"
-
-namespace ns3 {
-
-
-class Node;
-class Packet;
-
-/**
- * \brief This class implements a tag that carries socket ancillary 
- * data to the socket interface. This is used like 
- * socket option of IP_PKTINFO/IPV6_PKTINFO in RFC 3542
- * See: http://tools.ietf.org/html/rfc3542
- *
- * This tag in the send direction is presently not enabled but we
- * would accept a patch along those lines in the future. To include
- * the nexthop in the send direction would increase the size of the
- * tag beyond 20 bytes, so in that case, we recommend that an
- * additional tag be used to carry the IPv6 next hop address.
- */
-class Ipv6PacketInfoTag : public Tag
-{
-public:
-  Ipv6PacketInfoTag ();
-  // Implemented, but not used in the stack yet
-  void SetAddress (Ipv6Address addr);
-  // Implemented, but not used in the stack yet
-  Ipv6Address GetAddress (void) const;
-  void SetRecvIf (uint32_t ifindex);
-  uint32_t GetRecvIf (void) const;
-  // Implemented, but not used in the stack yet
-  void SetHoplimit (uint8_t ttl);
-  // Implemented, but not used in the stack yet
-  uint8_t GetHoplimit (void) const;
-  // Implemented, but not used in the stack yet
-  void SetTrafficClass (uint8_t tclass);
-  // Implemented, but not used in the stack yet
-  uint8_t GetTrafficClass (void) const;
-
-  static TypeId GetTypeId (void);  
-  virtual TypeId GetInstanceTypeId (void) const;
-  virtual uint32_t GetSerializedSize (void) const;
-  virtual void Serialize (TagBuffer i) const;
-  virtual void Deserialize (TagBuffer i);
-  virtual void Print (std::ostream &os) const;
-
-private:
-  /* 
-   * RFC 3542 includes
-   * for outgoing packet,
-   *  1.  the source IPv6 address,
-   *  2.  the outgoing interface index,
-   *  3.  the outgoing hop limit,
-   *  4.  the next hop address, and
-   *  5.  the outgoing traffic class value.
-   *
-   * for incoming packet,
-   *  1.  the destination IPv6 address,
-   *  2.  the arriving interface index,
-   *  3.  the arriving hop limit, and
-   *  4.  the arriving traffic class value.
-  */
-  Ipv6Address m_addr;
-  uint8_t m_ifindex;
-  uint8_t m_hoplimit;
-  uint8_t m_tclass;
-};
-} //namespace ns3
-
-#endif /* __IPV6_PACKET_INFO_TAG_H__ */
-
--- a/src/node/spectrum-channel.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "spectrum-channel.h"
-
-
-namespace ns3 {
-
-
-NS_OBJECT_ENSURE_REGISTERED (SpectrumChannel);
-
-TypeId
-SpectrumChannel::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::SpectrumChannel")
-    .SetParent<Channel> ()
-  ;
-  return tid;
-}
-
-SpectrumChannel::~SpectrumChannel ()
-{
-}
-
-} // namespace
--- a/src/node/spectrum-channel.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-
-#ifndef SPECTRUM_CHANNEL_H
-#define SPECTRUM_CHANNEL_H
-
-#include <ns3/object.h>
-#include <ns3/nstime.h>
-#include <ns3/channel.h>
-#include <ns3/spectrum-type.h>
-
-namespace ns3 {
-
-
-class PacketBurst;
-class SpectrumValue;
-class SpectrumPhy;
-class SpectrumPropagationLossModel;
-class PropagationDelayModel;
-
-/**
- * Defines the interface for spectrum-aware channel implementations
- *
- */
-class SpectrumChannel : public Channel
-{
-public:
-  
-  virtual ~SpectrumChannel ();
-  static TypeId GetTypeId (void);
-
-
-  /**
-   * set the propagation loss model to be used
-   * \param loss Ptr to the propagation loss model to be used.
-   */
-  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss) = 0;
-
-  /**
-   * set the  propagation delay model to be used
-   * \param delay Ptr to the propagation delay model to be used.
-   */
-  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay) = 0;
-
-
-  /**
-   * Used by attached PHY instances to transmit waveforms on the channel
-   *
-   * @param p the PacketBurst associated with the waveform being transmitted
-   * @param txPsd the Power Spectral Density of the
-   * waveform, in linear units. The exact unit will depend on the
-   * type of transmission medium involved: W for radio communications, Pa for
-   * underwater acoustic communications. Other transmission media to be defined.
-   * @param st spectrum type
-   * @param duration duration of the packet transmission. It is
-   * assumed that the Power Spectral Density remains constant for the
-   * whole duration of the transmission. In other words, all waveform
-   * have a rect shape with respect to time.
-   * @param sender the SpectrumPhy instance making this function call
-   */
-  virtual void StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> sender) = 0;
-
-  /**
-   * @brief add a SpectrumPhy to a channel, so it can receive packets
-   *
-   * This method is used to attach a SpectrumPhy instance to a
-   * SpectrumChannel instance, so that the SpectrumPhy can receive
-   * packets sent on that channel. Note that a SpectrumPhy that only
-   * transmits (without receiveing ever) does not need to be added to
-   * the channel. 
-   *
-   * This method is to be implemented by all classes inheriting from
-   * SpectrumChannel. 
-   *
-   * @param phy the SpectrumPhy instance to be added to the channel as
-   * a receiver. 
-   */
-  virtual void AddRx (Ptr<SpectrumPhy> phy) = 0;
-
-};
-
-
-
-}
-
-
-
-#endif /* SPECTRUM_CHANNEL_H */
--- a/src/node/spectrum-phy.cc	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#include "spectrum-phy.h"
-#include <ns3/net-device.h>
-#include <ns3/mobility-model.h>
-#include <ns3/spectrum-value.h>
-#include <ns3/spectrum-channel.h>
-#include <ns3/log.h>
-
-NS_LOG_COMPONENT_DEFINE ("SpectrumPhy");
-
-
-namespace ns3 {
-
-NS_OBJECT_ENSURE_REGISTERED (SpectrumPhy);
-
-
-TypeId 
-SpectrumPhy::GetTypeId (void)
-{
-  static TypeId tid = TypeId ("ns3::SpectrumPhy")
-    .SetParent<Object> ()
-    ;
-  return tid;
-}
-
-  
-SpectrumPhy::~SpectrumPhy ()
-{
-  NS_LOG_FUNCTION (this);
-}
-
-
-} // namespace
--- a/src/node/spectrum-phy.h	Tue Feb 01 14:31:54 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2009 CTTC
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Nicola Baldo <nbaldo@cttc.es>
- */
-
-#ifndef SPECTRUM_PHY_H
-#define SPECTRUM_PHY_H
-
-
-#include <ns3/object.h>
-#include <ns3/nstime.h>
-#include <ns3/spectrum-type.h>
-
-namespace ns3 {
-
-class PacketBurst;
-class SpectrumChannel;
-class MobilityModel;
-class SpectrumValue;
-class SpectrumModel;
-class NetDevice;
-
-/**
- * Abstract base class for Spectrum-aware PHY layers
- *
- */
-class SpectrumPhy  : public Object
-{
-
-public:
-
-
-  virtual ~SpectrumPhy ();
-  
-  static TypeId GetTypeId (void); 
-
-  /**
-   * set the associated NetDevice instance
-   *
-   * @param d the NetDevice instance
-   */
-  virtual void SetDevice (Ptr<Object> d) = 0;
-
-  /**
-   * get the associated NetDevice instance
-   *
-   * @return a Ptr to the associated NetDevice instance
-   */
-  virtual Ptr<Object> GetDevice () = 0;
-
-  /**
-   * Set the mobility model associated with this device.
-   *
-   * @param m the mobility model
-   */
-  virtual void SetMobility (Ptr<Object> m) = 0;
-
-  /**
-   * get the associated MobilityModel instance
-   *
-   * @return a Ptr to the associated NetDevice instance
-   */
-  virtual Ptr<Object> GetMobility () = 0;
-
-
-  /**
-   * Set the channel attached to this device.
-   *
-   * @param c the channel
-   */
-  virtual void SetChannel (Ptr<SpectrumChannel> c) = 0;
-
-  /** 
-   * 
-   * @return returns the SpectrumModel that this SpectrumPhy expects to be used
-   * for all SpectrumValues that are passed to StartRx. If 0 is
-   * returned, it means that any model will be accepted.
-   */
-  virtual Ptr<const SpectrumModel> GetRxSpectrumModel () const = 0;
-
-  /**
-   * Notify the SpectrumPhy instance of an incoming waveform
-   *
-   * @param p the PacketBurst associated with the incoming waveform
-   * @param rxPsd the Power Spectral Density of the incoming
-   * waveform. The units of the PSD are the same specified for SpectrumChannel::StartTx().
-   * @param st spectrum type
-   * @param duration the duration of the incoming waveform
-   */
-  virtual void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration) = 0;
-  
-
-};
-
-
-
-
-
-
-
-
-
-} // namespace ns3 
-
-
-
-
-
-#endif /* SPECTRUM_PHY_H */
--- a/src/node/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/node/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -49,10 +49,6 @@
         'packetbb.cc',
         'packetbb-test-suite.cc',
         'radiotap-header.cc',
-        'spectrum-phy.cc',
-        'spectrum-channel.cc',        
-        'ipv4-packet-info-tag.cc',
-        'ipv6-packet-info-tag.cc',
         ]
 
     headers = bld.new_task_gen('ns3header')
@@ -102,9 +98,5 @@
         'ipv6-routing-protocol.h',
         'packetbb.h',
         'radiotap-header.h',
-        'spectrum-phy.h',
-        'spectrum-channel.h',
         'phy-mac.h',
-        'ipv4-packet-info-tag.h',
-        'ipv6-packet-info-tag.h',
         ]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/cost231-propagation-loss-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,191 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2007,2008, 2009 INRIA, UDcast
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
+ *                              <amine.ismail@udcast.com>
+ */
+
+#include "ns3/propagation-loss-model.h"
+#include "ns3/log.h"
+#include "ns3/mobility-model.h"
+#include "ns3/double.h"
+#include "ns3/pointer.h"
+#include <math.h>
+#include "cost231-propagation-loss-model.h"
+
+namespace ns3 {
+
+NS_LOG_COMPONENT_DEFINE ("Cost231PropagationLossModel");
+NS_OBJECT_ENSURE_REGISTERED (Cost231PropagationLossModel);
+
+TypeId
+Cost231PropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::Cost231PropagationLossModel")
+
+    .SetParent<PropagationLossModel> ()
+
+    .AddConstructor<Cost231PropagationLossModel> ()
+
+    .AddAttribute ("Lambda",
+                   "The wavelength  (default is 2.3 GHz at 300 000 km/s).",
+                   DoubleValue (300000000.0 / 2.3e9),
+                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_lambda),
+                   MakeDoubleChecker<double> ())
+
+    .AddAttribute ("Frequency",
+                   "The Frequency  (default is 2.3 GHz).",
+                   DoubleValue (2.3e9),
+                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_frequency),
+                   MakeDoubleChecker<double> ())
+
+    .AddAttribute ("BSAntennaHeight",
+                   " BS Antenna Height (default is 50m).",
+                   DoubleValue (50.0),
+                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_BSAntennaHeight),
+                   MakeDoubleChecker<double> ())
+
+    .AddAttribute ("SSAntennaHeight",
+                   " SS Antenna Height (default is 3m).",
+                   DoubleValue (3),
+                   MakeDoubleAccessor (&Cost231PropagationLossModel::m_SSAntennaHeight),
+                   MakeDoubleChecker<double> ())
+
+    .AddAttribute ("MinDistance",
+                   "The distance under which the propagation model refuses to give results (m) ",
+                   DoubleValue (0.5),
+                   MakeDoubleAccessor (&Cost231PropagationLossModel::SetMinDistance, &Cost231PropagationLossModel::GetMinDistance),
+                   MakeDoubleChecker<double> ());
+  return tid;
+}
+
+Cost231PropagationLossModel::Cost231PropagationLossModel ()
+{
+  C = 0;
+  m_shadowing = 10;
+}
+
+void
+Cost231PropagationLossModel::SetLambda (double frequency, double speed)
+{
+  m_lambda = speed / frequency;
+  m_frequency = frequency;
+}
+
+double
+Cost231PropagationLossModel::GetShadowing (void)
+{
+  return m_shadowing;
+}
+void
+Cost231PropagationLossModel::SetShadowing (double shadowing)
+{
+  m_shadowing = shadowing;
+}
+
+void
+Cost231PropagationLossModel::SetLambda (double lambda)
+{
+  m_lambda = lambda;
+  m_frequency = 300000000 / lambda;
+}
+
+double
+Cost231PropagationLossModel::GetLambda (void) const
+{
+  return m_lambda;
+}
+
+void
+Cost231PropagationLossModel::SetMinDistance (double minDistance)
+{
+  m_minDistance = minDistance;
+}
+double
+Cost231PropagationLossModel::GetMinDistance (void) const
+{
+  return m_minDistance;
+}
+
+void
+Cost231PropagationLossModel::SetBSAntennaHeight (double height)
+{
+  m_BSAntennaHeight = height;
+}
+
+double
+Cost231PropagationLossModel::GetBSAntennaHeight (void) const
+{
+  return m_BSAntennaHeight;
+}
+
+void
+Cost231PropagationLossModel::SetSSAntennaHeight (double height)
+{
+  m_SSAntennaHeight = height;
+}
+
+double
+Cost231PropagationLossModel::GetSSAntennaHeight (void) const
+{
+  return m_SSAntennaHeight;
+}
+
+void
+Cost231PropagationLossModel::SetEnvironment (Environment env)
+{
+  m_environment = env;
+}
+Cost231PropagationLossModel::Environment
+Cost231PropagationLossModel::GetEnvironment (void) const
+{
+  return m_environment;
+}
+
+double
+Cost231PropagationLossModel::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
+{
+
+  double distance = a->GetDistanceFrom (b);
+  if (distance <= m_minDistance)
+    {
+      return 0.0;
+    }
+
+  double log_f = log (m_frequency / 1000000000) / 2.302;
+  double C_H = 0.8 + ((1.11 * log_f) - 0.7) * m_SSAntennaHeight - (1.56 * log_f);
+  double log_BSH = log (m_BSAntennaHeight) / 2.303;
+
+  // from the COST231 wiki entry
+  // 2.303 is for the logarithm base change
+
+  double loss_in_db = 46.3 + (33.9 * log_f) - (13.82 * log_BSH) - C_H + ((44.9 - 6.55 * log_BSH) * log (distance)
+                                                                         / 2.303) + C + m_shadowing;
+
+  NS_LOG_DEBUG ("dist =" << distance << ", Path Loss = " << loss_in_db);
+
+  return (0 - loss_in_db);
+
+}
+
+double
+Cost231PropagationLossModel::DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
+{
+  return txPowerDbm + GetLoss (a, b);
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/cost231-propagation-loss-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,92 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2007,2008, 2009 INRIA, UDcast
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
+ *                              <amine.ismail@udcast.com>
+ */
+
+#ifndef COST231_PROPAGATION_LOSS_MODEL_H_
+#define COST231_PROPAGATION_LOSS_MODEL_H_
+
+#include "ns3/nstime.h"
+#include "ns3/propagation-loss-model.h"
+
+namespace ns3 {
+
+/*
+ *  \brief The COST-Hata-Model is the most often cited of the COST 231 models.
+ *  Also called the Hata Model PCS Extension, it is a radio propagation model
+ *  that extends the Hata Model (which in turn is based on the Okumura Model)
+ *  to cover a more elaborated range of frequencies. COST (COperation
+ *  europ�enne dans le domaine de la recherche Scientifique et Technique)
+ *  is a European Union Forum for cooperative scientific research which has
+ *  developed this model accordingly to various experiments and researches.
+ *  This model is applicable to urban areas. To further evaluate Path Loss
+ *  in Suburban or Rural Quasi-open/Open Areas.
+ *  Frequency: 1500 MHz to 2000 MHz
+ *  Mobile Station Antenna Height: 1 up to 10m
+ *  Base station Antenna Height: 30m to 200m
+ *  Link Distance:up to 20 km
+ *
+ */
+
+class Cost231PropagationLossModel : public PropagationLossModel
+{
+
+public:
+  static TypeId GetTypeId (void);
+  Cost231PropagationLossModel ();
+  enum Environment
+  {
+    SubUrban, MediumCity, Metropolitan
+  };
+
+  /**
+   * \param a the mobility model of the source
+   * \param b the mobility model of the destination
+   * \returns the propagation loss (in dBm)
+   */
+  double GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
+  void SetBSAntennaHeight (double height);
+  void SetSSAntennaHeight (double height);
+  void SetEnvironment (Environment env);
+  void SetLambda (double lambda);
+  void SetMinDistance (double minDistance);
+  double GetBSAntennaHeight (void) const;
+  double GetSSAntennaHeight (void) const;
+  Environment GetEnvironment (void) const;
+  double GetMinDistance (void) const;
+  double GetLambda (void) const;
+  void SetLambda (double frequency, double speed);
+  double GetShadowing (void);
+  void SetShadowing (double shadowing);
+private:
+  virtual double DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
+  double m_BSAntennaHeight; // in meter
+  double m_SSAntennaHeight; // in meter
+  double C;
+  double m_lambda;
+  Environment m_environment;
+  double m_minDistance; // in meter
+  double m_frequency; // frequency in MHz
+  double m_shadowing;
+
+};
+
+}
+
+#endif /* COST231PROPAGATIONMODEL_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/jakes-propagation-loss-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,259 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Federico Maguolo <maguolof@dei.unipd.it>
+ */
+
+#include "ns3/simulator.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/random-variable.h"
+#include "ns3/mobility-model.h"
+#include "ns3/log.h"
+#include "jakes-propagation-loss-model.h"
+#include <math.h>
+
+NS_LOG_COMPONENT_DEFINE ("Jakes");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (JakesPropagationLossModel);
+
+class JakesPropagationLossModel::PathCoefficients 
+{
+public:
+  PathCoefficients (Ptr<const JakesPropagationLossModel> jakes,
+                    Ptr<MobilityModel> receiver, 
+                    uint8_t nRays, 
+                    uint8_t nOscillators);
+  ~PathCoefficients ();
+  double GetLoss (void);
+  Ptr<MobilityModel> GetReceiver (void);
+private:
+  void DoConstruct (void);
+  Ptr<MobilityModel> m_receiver;
+  uint8_t m_nOscillators;
+  uint8_t m_nRays;
+  double **m_phases;
+  Time m_lastUpdate;
+  Ptr<const JakesPropagationLossModel> m_jakes;
+};
+
+
+JakesPropagationLossModel::PathCoefficients::PathCoefficients (Ptr<const JakesPropagationLossModel> jakes, 
+                                                           Ptr<MobilityModel> receiver, 
+                                                           uint8_t nRays, 
+							   uint8_t nOscillators)
+  : m_receiver (receiver),
+    m_nOscillators (nOscillators),
+    m_nRays (nRays),
+    m_jakes(jakes)
+{
+  DoConstruct ();
+}
+
+JakesPropagationLossModel::PathCoefficients::~PathCoefficients ()
+{
+  for (uint8_t i = 0; i < m_nRays; i++) 
+    {
+      delete [] m_phases[i];
+    }
+  delete [] m_phases;
+}
+
+void
+JakesPropagationLossModel::PathCoefficients::DoConstruct ()
+{
+  m_phases = new double*[m_nRays];
+  for (uint8_t i = 0; i < m_nRays; i++) 
+    {
+      m_phases[i] = new double[m_nOscillators + 1];
+      for (uint8_t j = 0; j <= m_nOscillators; j++) 
+        {
+          m_phases[i][j] = 2.0 * JakesPropagationLossModel::PI * m_jakes->m_variable.GetValue ();
+        }
+    }
+  m_lastUpdate = Simulator::Now ();
+}
+
+Ptr<MobilityModel>
+JakesPropagationLossModel::PathCoefficients::GetReceiver ()
+{
+  return m_receiver;
+}
+
+double
+JakesPropagationLossModel::PathCoefficients::GetLoss (void)
+{
+  uint16_t N = 4 * m_nOscillators + 2;
+  Time interval = Simulator::Now () - m_lastUpdate;
+  ComplexNumber coef= {0.0, 0.0};
+  ComplexNumber fading;
+  double norm = 0.0;
+  for (uint8_t i = 0; i < m_nRays; i++) 
+    {
+      fading.real = 0.0;
+      fading.imag = 0.0;
+      for (uint8_t j = 0; j <= m_nOscillators; j++) 
+        {
+          m_phases[i][j] += 2.0 * JakesPropagationLossModel::PI * 
+            cos (2.0 * JakesPropagationLossModel::PI * j / N) * m_jakes->m_fd * interval.GetSeconds ();
+          m_phases[i][j] -= 2.0 * JakesPropagationLossModel::PI * 
+            floor (m_phases[i][j] / 2.0 / JakesPropagationLossModel::PI);
+          fading.real += m_jakes->m_amp[j].real * cos (m_phases[i][j]);
+          fading.imag += m_jakes->m_amp[j].imag * cos (m_phases[i][j]);
+          norm += sqrt(pow (m_jakes->m_amp[j].real, 2) + pow(m_jakes->m_amp[j].imag, 2));
+        }
+    coef.real += fading.real;
+    coef.imag += fading.imag;
+    }
+  m_lastUpdate = Simulator::Now ();
+  double k = sqrt (pow (coef.real, 2) + pow (coef.imag, 2)) / norm;
+  NS_LOG_DEBUG ("Jakes coef "<< k << " (" << 10 * log10 (k) << "dB)");
+  return 10 * log10 (k);
+}
+
+const double JakesPropagationLossModel::PI = 3.14159265358979323846;
+
+TypeId
+JakesPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::JakesPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<JakesPropagationLossModel> ()
+    .AddAttribute ("NumberOfRaysPerPath",
+                   "The number of rays to use by default for compute the fading coeficent for a given path (default is 1)",
+                   UintegerValue (1),
+		   MakeUintegerAccessor (&JakesPropagationLossModel::SetNRays,
+                                         &JakesPropagationLossModel::GetNRays),
+		   MakeUintegerChecker<uint8_t> ())
+    .AddAttribute ("NumberOfOscillatorsPerRay",
+                   "The number of oscillators to use by default for compute the coeficent for a given ray of a given "
+                   "path (default is 4)",
+                   UintegerValue (4),
+		   MakeUintegerAccessor (&JakesPropagationLossModel::SetNOscillators,
+                                         &JakesPropagationLossModel::GetNOscillators),
+		   MakeUintegerChecker<uint8_t> ())
+    .AddAttribute ("DopplerFreq",
+                   "The doppler frequency in Hz (f_d = v / lambda = v * f / c), the default is 0)",
+                   DoubleValue (0.0),
+		   MakeDoubleAccessor (&JakesPropagationLossModel::m_fd),
+		   MakeDoubleChecker<double> ())
+    .AddAttribute ("Distribution",
+                   "The distribution to choose the initial phases.",
+                   RandomVariableValue (ConstantVariable (1.0)),
+                   MakeRandomVariableAccessor (&JakesPropagationLossModel::m_variable),
+                   MakeRandomVariableChecker ())
+    ;
+  return tid;
+}
+
+JakesPropagationLossModel::JakesPropagationLossModel ()
+  : m_amp (0),
+    m_nRays (0),
+    m_nOscillators (0)
+{}
+
+JakesPropagationLossModel::~JakesPropagationLossModel ()
+{
+  delete [] m_amp;
+  for (PathsList::iterator i = m_paths.end (); i != m_paths.begin (); i--) 
+    {
+      PathsSet *ps = *i;
+      for (DestinationList::iterator r = ps->receivers.begin (); r != ps->receivers.end (); r++) 
+        {
+          PathCoefficients *pc = *r;
+          delete pc;
+        }
+      delete ps;
+    }
+}
+
+void
+JakesPropagationLossModel::SetNRays (uint8_t nRays)
+{
+  m_nRays = nRays;
+}
+
+void
+JakesPropagationLossModel::SetNOscillators (uint8_t nOscillators)
+{
+  m_nOscillators = nOscillators;
+  delete [] m_amp;
+  uint16_t N = 4 * m_nOscillators + 2;
+  m_amp = new ComplexNumber[m_nOscillators + 1];
+  m_amp[0].real = 2.0 * sqrt(2.0 / N) * cos (PI / 4.0);
+  m_amp[0].imag = 2.0 * sqrt(2.0 / N) * sin (PI / 4.0);
+  for (uint8_t i = 1; i <= m_nOscillators; i++) 
+    {
+      double beta = PI * (double)i / m_nOscillators;
+      m_amp[i].real = 4.0 * cos (beta) / sqrt(N);
+      m_amp[i].imag = 4.0 * sin (beta) / sqrt(N);
+    }
+}
+
+uint8_t 
+JakesPropagationLossModel::GetNRays (void) const
+{
+  return m_nRays;
+}
+uint8_t 
+JakesPropagationLossModel::GetNOscillators (void) const
+{
+  return m_nOscillators;
+}
+
+
+double 
+JakesPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                          Ptr<MobilityModel> a,
+                                          Ptr<MobilityModel> b) const
+{
+  PathsList::iterator i = m_paths.end ();
+  while (i != m_paths.begin ()) 
+    {
+      i--;
+      PathsSet *ps = *i;
+      if (ps->sender == a) 
+        {
+          m_paths.erase (i);
+          m_paths.push_back (ps);
+          for (DestinationList::iterator r = ps->receivers.begin (); r != ps->receivers.end (); r++) 
+            {
+              PathCoefficients *pc = *r;
+              if (pc->GetReceiver () == b) 
+                {
+                  ps->receivers.erase (r);
+                  ps->receivers.push_back (pc);
+                  return txPowerDbm + pc->GetLoss ();
+                }
+            }
+          PathCoefficients *pc = new PathCoefficients (this, b, m_nRays, m_nOscillators);
+          ps->receivers.push_back (pc);
+          return txPowerDbm + pc->GetLoss ();
+        }
+    }
+  PathsSet *ps = new PathsSet;
+  ps->sender = a;
+  PathCoefficients *pc = new PathCoefficients (this, b, m_nRays, m_nOscillators);
+  ps->receivers.push_back (pc);
+  m_paths.push_back (ps);
+  return txPowerDbm + pc->GetLoss ();
+}
+
+} // namespace ns3
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/jakes-propagation-loss-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,137 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Federico Maguolo <maguolof@dei.unipd.it>
+ */
+#ifndef PROPAGATION_JAKES_MODEL_H
+#define PROPAGATION_JAKES_MODEL_H
+
+#include "ns3/nstime.h"
+#include "propagation-loss-model.h"
+
+namespace ns3 {
+
+
+/**
+ * \brief a Jakes propagation loss model
+ *
+ * The Jakes propagation loss model implemented here is 
+ * described in [1].
+ * 
+ *
+ * We call path the set of rays that depart from a given 
+ * transmitter and arrive to a given receiver. For each ray
+ * The complex coefficient is compute as follow:
+ * \f[ u(t)=u_c(t) + j u_s(t)\f]
+ * \f[ u_c(t) = \frac{2}{\sqrt{N}}\sum_{n=0}^{M}a_n\cos(\omega_n t+\phi_n)\f]
+ * \f[ u_s(t) = \frac{2}{\sqrt{N}}\sum_{n=0}^{M}b_n\cos(\omega_n t+\phi_n)\f]
+ * where
+ * \f[ a_n=\left \{ \begin{array}{ll}
+ * \sqrt{2}\cos\beta_0 & n=0 \\
+ * 2\cos\beta_n & n=1,2,\ldots,M
+ * \end{array}
+ * \right .\f]
+ * \f[ b_n=\left \{ \begin{array}{ll}
+ * \sqrt{2}\sin\beta_0 & n=0 \\
+ * 2\sin\beta_n & n=1,2,\ldots,M
+ * \end{array}
+ * \right .\f]
+ * \f[ \beta_n=\left \{ \begin{array}{ll}
+ * \frac{\pi}{4} & n=0 \\
+ * \frac{\pi n}{M} & n=1,2,\ldots,M
+ * \end{array}
+ * \right .\f]
+ * \f[ \omega_n=\left \{ \begin{array}{ll}
+ * 2\pi f_d & n=0 \\
+ * 2\pi f_d \cos\frac{2\pi n}{N} & n=1,2,\ldots,M
+ * \end{array}
+ * \right .\f]
+ *
+ * The parameter \f$f_d\f$ is the doppler frequency and \f$N=4M+2\f$ where
+ * \f$M\f$ is the number of oscillators per ray.
+ *
+ * The attenuation coefficent of the path is the magnitude of the sum of 
+ * all the ray coefficients. This attenuation coefficient could be greater than
+ * \f$1\f$, hence it is divide by \f$ \frac{2N_r}{\sqrt{N}} \sum_{n+0}^{M}\sqrt{a_n^2 +b_n^2}\f$
+ * where \f$N_r\f$ is the number of rays.
+ *
+ * The initail phases \f$\phi_i\f$ are random and they are choosen according 
+ * to a given distribution.
+ * 
+ * [1] Y. R. Zheng and C. Xiao, "Simulation Models With Correct 
+ * Statistical Properties for Rayleigh Fading Channel", IEEE
+ * Trans. on Communications, Vol. 51, pp 920-928, June 2003
+ */
+class JakesPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  JakesPropagationLossModel ();
+  virtual ~JakesPropagationLossModel ();
+
+  /**
+   * \param nRays Number of rays per path
+   *
+   * Set the number of rays for each path
+   */
+  void SetNRays (uint8_t nRays);
+  /**
+   * \param nOscillators Number of oscillators
+   *
+   * Set the number of oscillators to use to compute the ray coefficient
+   */
+  void SetNOscillators (uint8_t nOscillators);
+
+  uint8_t GetNRays (void) const;
+  uint8_t GetNOscillators (void) const;
+
+private:
+  JakesPropagationLossModel (const JakesPropagationLossModel &o);
+  JakesPropagationLossModel & operator = (const JakesPropagationLossModel &o);
+  void DoConstruct (void);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+
+  class PathCoefficients;
+  struct ComplexNumber {
+    double real;
+    double imag;
+  };
+  friend class PathCoefficents;
+  typedef std::vector<PathCoefficients *> DestinationList;
+  struct PathsSet {
+    Ptr<MobilityModel> sender;
+    DestinationList receivers;
+  };
+  typedef std::vector<PathsSet *> PathsList;
+
+  
+  static const double PI;
+  ComplexNumber* m_amp;
+  RandomVariable m_variable;
+  double m_fd;  
+  mutable PathsList m_paths;
+  uint8_t m_nRays;
+  uint8_t m_nOscillators;
+};
+
+} // namespace ns3
+
+#endif /* PROPAGATION_JAKES_MODEL_H */
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/propagation-delay-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,104 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
+#include "propagation-delay-model.h"
+#include "ns3/random-variable.h"
+#include "ns3/mobility-model.h"
+#include "ns3/double.h"
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (PropagationDelayModel);
+
+TypeId 
+PropagationDelayModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::PropagationDelayModel")
+    .SetParent<Object> ()
+    ;
+  return tid;
+}
+
+PropagationDelayModel::~PropagationDelayModel ()
+{}
+
+NS_OBJECT_ENSURE_REGISTERED (RandomPropagationDelayModel);
+
+TypeId 
+RandomPropagationDelayModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::RandomPropagationDelayModel")
+    .SetParent<PropagationDelayModel> ()
+    .AddConstructor<RandomPropagationDelayModel> ()
+    .AddAttribute ("Variable",
+                   "The random variable which generates random delays (s).",
+                   RandomVariableValue (UniformVariable (0.0, 1.0)),
+                   MakeRandomVariableAccessor (&RandomPropagationDelayModel::m_variable),
+                   MakeRandomVariableChecker ())
+    ;
+  return tid;
+}
+
+RandomPropagationDelayModel::RandomPropagationDelayModel ()
+{}
+RandomPropagationDelayModel::~RandomPropagationDelayModel ()
+{}
+Time 
+RandomPropagationDelayModel::GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
+{
+  return Seconds (m_variable.GetValue ());
+}
+
+NS_OBJECT_ENSURE_REGISTERED (ConstantSpeedPropagationDelayModel);
+
+TypeId
+ConstantSpeedPropagationDelayModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::ConstantSpeedPropagationDelayModel")
+    .SetParent<PropagationDelayModel> ()
+    .AddConstructor<ConstantSpeedPropagationDelayModel> ()
+    .AddAttribute ("Speed", "The speed (m/s)",
+                   DoubleValue (300000000.0),
+                   MakeDoubleAccessor (&ConstantSpeedPropagationDelayModel::m_speed),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+}
+
+ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel ()
+{}
+Time 
+ConstantSpeedPropagationDelayModel::GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
+{
+  double distance = a->GetDistanceFrom (b);
+  double seconds = distance / m_speed;
+  return Seconds (seconds);
+}
+void 
+ConstantSpeedPropagationDelayModel::SetSpeed (double speed)
+{
+  m_speed = speed;
+}
+double 
+ConstantSpeedPropagationDelayModel::GetSpeed (void) const
+{
+  return m_speed;
+}
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/propagation-delay-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,96 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ */
+#ifndef PROPAGATION_DELAY_MODEL_H
+#define PROPAGATION_DELAY_MODEL_H
+
+#include "ns3/ptr.h"
+#include "ns3/object.h"
+#include "ns3/nstime.h"
+#include "ns3/random-variable.h"
+
+namespace ns3 {
+
+class MobilityModel;
+
+/**
+ * \brief calculate a propagation delay.
+ */
+class PropagationDelayModel : public Object
+{
+public:
+  static TypeId GetTypeId (void);
+  virtual ~PropagationDelayModel ();
+  /**
+   * \param a the source
+   * \param b the destination
+   * \returns the calculated propagation delay
+   *
+   * Calculate the propagation delay between the specified
+   * source and destination.
+   */
+  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const = 0;
+};
+
+/**
+ * \brief the propagation delay is random
+ */
+class RandomPropagationDelayModel : public PropagationDelayModel
+{
+public:
+  static TypeId GetTypeId (void);
+
+  /**
+   * Use the default parameters from PropagationDelayRandomDistribution.
+   */
+  RandomPropagationDelayModel ();
+  virtual ~RandomPropagationDelayModel ();
+  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
+private:
+  RandomVariable m_variable;
+};
+
+/**
+ * \brief the propagation speed is constant
+ */
+class ConstantSpeedPropagationDelayModel : public PropagationDelayModel
+{
+public:
+  static TypeId GetTypeId (void);
+
+  /**
+   * Use the default parameters from PropagationDelayConstantSpeed.
+   */
+  ConstantSpeedPropagationDelayModel ();
+  virtual Time GetDelay (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
+  /**
+   * \param speed the new speed (m/s)
+   */
+  void SetSpeed (double speed);
+  /**
+   * \returns the current propagation speed (m/s).
+   */
+  double GetSpeed (void) const;
+private:
+  double m_speed;
+};
+
+} // namespace ns3
+
+#endif /* PROPAGATION_DELAY_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/propagation-loss-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,830 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ * Contributions: Timo Bingmann <timo.bingmann@student.kit.edu>
+ * Contributions: Tom Hewer <tomhewer@mac.com> for Two Ray Ground Model
+ *                Pavel Boyko <boyko@iitp.ru> for matrix
+ */
+
+#include "propagation-loss-model.h"
+#include "ns3/log.h"
+#include "ns3/mobility-model.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include <math.h>
+
+NS_LOG_COMPONENT_DEFINE ("PropagationLossModel");
+
+namespace ns3 {
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (PropagationLossModel);
+
+TypeId 
+PropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::PropagationLossModel")
+    .SetParent<Object> ()
+    ;
+  return tid;
+}
+
+PropagationLossModel::PropagationLossModel ()
+  : m_next (0)
+{}
+
+PropagationLossModel::~PropagationLossModel ()
+{}
+
+void 
+PropagationLossModel::SetNext (Ptr<PropagationLossModel> next)
+{
+  m_next = next;
+}
+
+double 
+PropagationLossModel::CalcRxPower (double txPowerDbm,
+                                   Ptr<MobilityModel> a,
+                                   Ptr<MobilityModel> b) const
+{
+  double self = DoCalcRxPower (txPowerDbm, a, b);
+  if (m_next != 0)
+    {
+      self = m_next->CalcRxPower (self, a, b);
+    }
+  return self;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (RandomPropagationLossModel);
+
+TypeId 
+RandomPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::RandomPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<RandomPropagationLossModel> ()
+    .AddAttribute ("Variable", "The random variable used to pick a loss everytime CalcRxPower is invoked.",
+                   RandomVariableValue (ConstantVariable (1.0)),
+                   MakeRandomVariableAccessor (&RandomPropagationLossModel::m_variable),
+                   MakeRandomVariableChecker ())
+    ;
+  return tid;
+}
+RandomPropagationLossModel::RandomPropagationLossModel ()
+  : PropagationLossModel ()
+{}
+
+RandomPropagationLossModel::~RandomPropagationLossModel ()
+{}
+
+double 
+RandomPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                           Ptr<MobilityModel> a,
+                                           Ptr<MobilityModel> b) const
+{
+  double rxc = -m_variable.GetValue ();
+  NS_LOG_DEBUG ("attenuation coefficent="<<rxc<<"Db");
+  return txPowerDbm + rxc;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (FriisPropagationLossModel);
+
+const double FriisPropagationLossModel::PI = 3.14159265358979323846;
+
+TypeId 
+FriisPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::FriisPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<FriisPropagationLossModel> ()
+    .AddAttribute ("Lambda", 
+                   "The wavelength  (default is 5.15 GHz at 300 000 km/s).",
+                   DoubleValue (300000000.0 / 5.150e9),
+                   MakeDoubleAccessor (&FriisPropagationLossModel::m_lambda),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("SystemLoss", "The system loss",
+                   DoubleValue (1.0),
+                   MakeDoubleAccessor (&FriisPropagationLossModel::m_systemLoss),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("MinDistance", 
+                   "The distance under which the propagation model refuses to give results (m)",
+                   DoubleValue (0.5),
+                   MakeDoubleAccessor (&FriisPropagationLossModel::SetMinDistance,
+                                       &FriisPropagationLossModel::GetMinDistance),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+}
+
+FriisPropagationLossModel::FriisPropagationLossModel ()
+{}
+void 
+FriisPropagationLossModel::SetSystemLoss (double systemLoss)
+{
+  m_systemLoss = systemLoss;
+}
+double 
+FriisPropagationLossModel::GetSystemLoss (void) const
+{
+  return m_systemLoss;
+}
+void 
+FriisPropagationLossModel::SetMinDistance (double minDistance)
+{
+  m_minDistance = minDistance;
+}
+double 
+FriisPropagationLossModel::GetMinDistance (void) const
+{
+  return m_minDistance;
+}
+void 
+FriisPropagationLossModel::SetLambda (double frequency, double speed)
+{
+  m_lambda = speed / frequency;
+}
+void 
+FriisPropagationLossModel::SetLambda (double lambda)
+{
+  m_lambda = lambda;
+}
+double 
+FriisPropagationLossModel::GetLambda (void) const
+{
+  return m_lambda;
+}
+
+double 
+FriisPropagationLossModel::DbmToW (double dbm) const
+{
+  double mw = pow(10.0,dbm/10.0);
+  return mw / 1000.0;
+}
+
+double
+FriisPropagationLossModel::DbmFromW (double w) const
+{
+  double dbm = log10 (w * 1000.0) * 10.0;
+  return dbm;
+}
+
+double 
+FriisPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                          Ptr<MobilityModel> a,
+                                          Ptr<MobilityModel> b) const
+{
+  /*
+   * Friis free space equation:
+   * where Pt, Gr, Gr and P are in Watt units
+   * L is in meter units.
+   *
+   *    P     Gt * Gr * (lambda^2)
+   *   --- = ---------------------
+   *    Pt     (4 * pi * d)^2 * L
+   *
+   * Gt: tx gain (unit-less)
+   * Gr: rx gain (unit-less)
+   * Pt: tx power (W)
+   * d: distance (m)
+   * L: system loss
+   * lambda: wavelength (m)
+   *
+   * Here, we ignore tx and rx gain and the input and output values 
+   * are in dB or dBm:
+   *
+   *                           lambda^2
+   * rx = tx +  10 log10 (-------------------)
+   *                       (4 * pi * d)^2 * L
+   *
+   * rx: rx power (dB)
+   * tx: tx power (dB)
+   * d: distance (m)
+   * L: system loss (unit-less)
+   * lambda: wavelength (m)
+   */
+  double distance = a->GetDistanceFrom (b);
+  if (distance <= m_minDistance)
+    {
+      return txPowerDbm;
+    }
+  double numerator = m_lambda * m_lambda;
+  double denominator = 16 * PI * PI * distance * distance * m_systemLoss;
+  double pr = 10 * log10 (numerator / denominator);
+  NS_LOG_DEBUG ("distance="<<distance<<"m, attenuation coefficient="<<pr<<"dB");
+  return txPowerDbm + pr;
+}
+
+// ------------------------------------------------------------------------- //
+// -- Two-Ray Ground Model ported from NS-2 -- tomhewer@mac.com -- Nov09 //
+
+NS_OBJECT_ENSURE_REGISTERED (TwoRayGroundPropagationLossModel);
+
+const double TwoRayGroundPropagationLossModel::PI = 3.14159265358979323846;
+
+TypeId 
+TwoRayGroundPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::TwoRayGroundPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<TwoRayGroundPropagationLossModel> ()
+    .AddAttribute ("Lambda",
+                   "The wavelength  (default is 5.15 GHz at 300 000 km/s).",
+                   DoubleValue (300000000.0 / 5.150e9),
+                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_lambda),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("SystemLoss", "The system loss",
+                   DoubleValue (1.0),
+                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_systemLoss),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("MinDistance",
+                   "The distance under which the propagation model refuses to give results (m)",
+                   DoubleValue (0.5),
+                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::SetMinDistance,
+                                       &TwoRayGroundPropagationLossModel::GetMinDistance),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("HeightAboveZ",
+                   "The height of the antenna (m) above the node's Z coordinate",
+                   DoubleValue (0),
+                   MakeDoubleAccessor (&TwoRayGroundPropagationLossModel::m_heightAboveZ),
+                   MakeDoubleChecker<double> ())
+  ;
+  return tid;
+}
+
+TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel ()
+{
+}
+void
+TwoRayGroundPropagationLossModel::SetSystemLoss (double systemLoss)
+{
+  m_systemLoss = systemLoss;
+}
+double
+TwoRayGroundPropagationLossModel::GetSystemLoss (void) const
+{
+  return m_systemLoss;
+}
+void
+TwoRayGroundPropagationLossModel::SetMinDistance (double minDistance)
+{
+  m_minDistance = minDistance;
+}
+double
+TwoRayGroundPropagationLossModel::GetMinDistance (void) const
+{
+  return m_minDistance;
+}
+void
+TwoRayGroundPropagationLossModel::SetHeightAboveZ (double heightAboveZ)
+{
+  m_heightAboveZ = heightAboveZ;
+}
+void 
+TwoRayGroundPropagationLossModel::SetLambda (double frequency, double speed)
+{
+  m_lambda = speed / frequency;
+}
+void 
+TwoRayGroundPropagationLossModel::SetLambda (double lambda)
+{
+  m_lambda = lambda;
+}
+double 
+TwoRayGroundPropagationLossModel::GetLambda (void) const
+{
+  return m_lambda;
+}
+
+double 
+TwoRayGroundPropagationLossModel::DbmToW (double dbm) const
+{
+  double mw = pow (10.0,dbm / 10.0);
+  return mw / 1000.0;
+}
+
+double
+TwoRayGroundPropagationLossModel::DbmFromW (double w) const
+{
+  double dbm = log10 (w * 1000.0) * 10.0;
+  return dbm;
+}
+
+double 
+TwoRayGroundPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                                 Ptr<MobilityModel> a,
+                                                 Ptr<MobilityModel> b) const
+{
+  /*
+   * Two-Ray Ground equation:
+   *
+   * where Pt, Gt and Gr are in dBm units
+   * L, Ht and Hr are in meter units.
+   *
+   *   Pr      Gt * Gr * (Ht^2 * Hr^2)
+   *   -- =  (-------------------------)
+   *   Pt            d^4 * L
+   *
+   * Gt: tx gain (unit-less)
+   * Gr: rx gain (unit-less)
+   * Pt: tx power (dBm)
+   * d: distance (m)
+   * L: system loss
+   * Ht: Tx antenna height (m)
+   * Hr: Rx antenna height (m)
+   * lambda: wavelength (m)
+   *
+   * As with the Friis model we ignore tx and rx gain and output values
+   * are in dB or dBm
+   *
+   *                      (Ht * Ht) * (Hr * Hr)
+   * rx = tx + 10 log10 (-----------------------)
+   *                      (d * d * d * d) * L
+   */
+  double distance = a->GetDistanceFrom (b);
+  if (distance <= m_minDistance)
+    {
+      return txPowerDbm;
+    }
+
+  // Set the height of the Tx and Rx antennae
+  double txAntHeight = a->GetPosition ().z + m_heightAboveZ;
+  double rxAntHeight = b->GetPosition ().z + m_heightAboveZ;
+
+  // Calculate a crossover distance, under which we use Friis
+  /*
+   * 
+   * dCross = (4 * pi * Ht * Hr) / lambda
+   *
+   */
+
+  double dCross = (4 * PI * txAntHeight * rxAntHeight) / GetLambda ();
+  double tmp = 0;
+  if (distance <= dCross)
+    {
+      // We use Friis
+      double numerator = m_lambda * m_lambda;
+      tmp = PI * distance;
+      double denominator = 16 * tmp * tmp * m_systemLoss;
+      double pr = 10 * log10 (numerator / denominator);
+      NS_LOG_DEBUG ("Receiver within crossover (" << dCross << "m) for Two_ray path; using Friis");
+      NS_LOG_DEBUG ("distance=" << distance << "m, attenuation coefficient=" << pr << "dB");
+      return txPowerDbm + pr;
+    }
+  else   // Use Two-Ray Pathloss
+    {
+      tmp = txAntHeight * rxAntHeight;
+      double rayNumerator = tmp * tmp;
+      tmp = distance * distance;
+      double rayDenominator = tmp * tmp * m_systemLoss;
+      double rayPr = 10 * log10 (rayNumerator / rayDenominator);
+      NS_LOG_DEBUG ("distance=" << distance << "m, attenuation coefficient=" << rayPr << "dB");
+      return txPowerDbm + rayPr;
+
+    }
+}
+
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (LogDistancePropagationLossModel);
+
+TypeId
+LogDistancePropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::LogDistancePropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<LogDistancePropagationLossModel> ()
+    .AddAttribute ("Exponent",
+                   "The exponent of the Path Loss propagation model",
+                   DoubleValue (3.0),
+                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_exponent),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("ReferenceDistance",
+                   "The distance at which the reference loss is calculated (m)",
+                   DoubleValue (1.0),
+                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceDistance),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("ReferenceLoss",
+                   "The reference loss at reference distance (dB). (Default is Friis at 1m with 5.15 GHz)",
+                   DoubleValue (46.6777),
+                   MakeDoubleAccessor (&LogDistancePropagationLossModel::m_referenceLoss),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+                   
+}
+
+LogDistancePropagationLossModel::LogDistancePropagationLossModel ()
+{}
+
+void 
+LogDistancePropagationLossModel::SetPathLossExponent (double n)
+{
+  m_exponent = n;
+}
+void 
+LogDistancePropagationLossModel::SetReference (double referenceDistance, double referenceLoss)
+{
+  m_referenceDistance = referenceDistance;
+  m_referenceLoss = referenceLoss;
+}
+double 
+LogDistancePropagationLossModel::GetPathLossExponent (void) const
+{
+  return m_exponent;
+}
+  
+double 
+LogDistancePropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                                Ptr<MobilityModel> a,
+                                                Ptr<MobilityModel> b) const
+{
+  double distance = a->GetDistanceFrom (b);
+  if (distance <= m_referenceDistance)
+    {
+      return txPowerDbm;
+    }
+  /**
+   * The formula is:
+   * rx = 10 * log (Pr0(tx)) - n * 10 * log (d/d0)
+   *
+   * Pr0: rx power at reference distance d0 (W)
+   * d0: reference distance: 1.0 (m)
+   * d: distance (m)
+   * tx: tx power (dB)
+   * rx: dB
+   *
+   * Which, in our case is:
+   *
+   * rx = rx0(tx) - 10 * n * log (d/d0)
+   */
+  double pathLossDb = 10 * m_exponent * log10 (distance / m_referenceDistance);
+  double rxc = -m_referenceLoss - pathLossDb;
+  NS_LOG_DEBUG ("distance="<<distance<<"m, reference-attenuation="<<-m_referenceLoss<<"dB, "<<
+		"attenuation coefficient="<<rxc<<"db");
+  return txPowerDbm + rxc;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (ThreeLogDistancePropagationLossModel);
+
+TypeId
+ThreeLogDistancePropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::ThreeLogDistancePropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<ThreeLogDistancePropagationLossModel> ()
+    .AddAttribute ("Distance0",
+                   "Beginning of the first (near) distance field",
+                   DoubleValue (1.0),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance0),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Distance1",
+                   "Beginning of the second (middle) distance field.",
+                   DoubleValue (200.0),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance1),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Distance2",
+                   "Beginning of the third (far) distance field.",
+                   DoubleValue (500.0),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_distance2),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Exponent0",
+                   "The exponent for the first field.",
+                   DoubleValue (1.9),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent0),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Exponent1",
+                   "The exponent for the second field.",
+                   DoubleValue (3.8),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent1),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Exponent2",
+                   "The exponent for the third field.",
+                   DoubleValue (3.8),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_exponent2),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("ReferenceLoss",
+                   "The reference loss at distance d0 (dB). (Default is Friis at 1m with 5.15 GHz)",
+                   DoubleValue (46.6777),
+                   MakeDoubleAccessor (&ThreeLogDistancePropagationLossModel::m_referenceLoss),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+                   
+}
+
+ThreeLogDistancePropagationLossModel::ThreeLogDistancePropagationLossModel ()
+{
+}
+
+double 
+ThreeLogDistancePropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                                     Ptr<MobilityModel> a,
+                                                     Ptr<MobilityModel> b) const
+{
+  double distance = a->GetDistanceFrom (b);
+  NS_ASSERT(distance >= 0);
+
+  // See doxygen comments for the formula and explanation
+
+  double pathLossDb;
+
+  if (distance < m_distance0)
+    {
+      pathLossDb = 0;
+    }
+  else if (distance < m_distance1)
+    {
+      pathLossDb = m_referenceLoss
+        + 10 * m_exponent0 * log10(distance / m_distance0);
+    }
+  else if (distance < m_distance2)
+    {
+      pathLossDb = m_referenceLoss
+        + 10 * m_exponent0 * log10(m_distance1 / m_distance0)
+        + 10 * m_exponent1 * log10(distance / m_distance1);
+    }
+  else
+    {
+      pathLossDb = m_referenceLoss
+        + 10 * m_exponent0 * log10(m_distance1 / m_distance0)
+        + 10 * m_exponent1 * log10(m_distance2 / m_distance1)
+        + 10 * m_exponent2 * log10(distance / m_distance2);
+    }
+
+  NS_LOG_DEBUG ("ThreeLogDistance distance=" << distance << "m, " <<
+                "attenuation=" << pathLossDb << "dB");
+
+  return txPowerDbm - pathLossDb;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (NakagamiPropagationLossModel);
+
+TypeId
+NakagamiPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::NakagamiPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<NakagamiPropagationLossModel> ()
+    .AddAttribute ("Distance1",
+                   "Beginning of the second distance field. Default is 80m.",
+                   DoubleValue (80.0),
+                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_distance1),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("Distance2",
+                   "Beginning of the third distance field. Default is 200m.",
+                   DoubleValue (200.0),
+                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_distance2),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("m0",
+                   "m0 for distances smaller than Distance1. Default is 1.5.",
+                   DoubleValue (1.5),
+                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m0),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("m1",
+                   "m1 for distances smaller than Distance2. Default is 0.75.",
+                   DoubleValue (0.75),
+                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m1),
+                   MakeDoubleChecker<double> ())
+    .AddAttribute ("m2",
+                   "m2 for distances greater than Distance2. Default is 0.75.",
+                   DoubleValue (0.75),
+                   MakeDoubleAccessor (&NakagamiPropagationLossModel::m_m2),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+                   
+}
+
+NakagamiPropagationLossModel::NakagamiPropagationLossModel ()
+{}
+
+double 
+NakagamiPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                             Ptr<MobilityModel> a,
+                                             Ptr<MobilityModel> b) const
+{
+  // select m parameter
+
+  double distance = a->GetDistanceFrom (b);
+  NS_ASSERT(distance >= 0);
+
+  double m;
+  if (distance < m_distance1)
+    {
+      m = m_m0;
+    }
+  else if (distance < m_distance2)
+    {
+      m = m_m1;
+    }
+  else
+    {
+      m = m_m2;
+    }
+  
+  // the current power unit is dBm, but Watt is put into the Nakagami /
+  // Rayleigh distribution.
+  double powerW = pow(10, (txPowerDbm - 30) / 10);
+
+  double resultPowerW;
+
+  // switch between Erlang- and Gamma distributions: this is only for
+  // speed. (Gamma is equal to Erlang for any positive integer m.)
+  unsigned int int_m = static_cast<unsigned int>(floor(m));
+
+  if (int_m == m)
+    {
+      resultPowerW = m_erlangRandomVariable.GetValue(int_m, powerW / m);
+    }
+  else
+    {
+      resultPowerW = m_gammaRandomVariable.GetValue(m, powerW / m);
+    }
+
+  double resultPowerDbm = 10 * log10(resultPowerW) + 30;
+
+  NS_LOG_DEBUG ("Nakagami distance=" << distance << "m, " <<
+                "power=" << powerW <<"W, " <<
+                "resultPower=" << resultPowerW << "W=" << resultPowerDbm << "dBm");
+
+  return resultPowerDbm;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (FixedRssLossModel);
+
+TypeId 
+FixedRssLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::FixedRssLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<FixedRssLossModel> ()
+    .AddAttribute ("Rss", "The fixed receiver Rss.",
+                   DoubleValue (-150.0),
+                   MakeDoubleAccessor (&FixedRssLossModel::m_rss),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+}
+FixedRssLossModel::FixedRssLossModel ()
+  : PropagationLossModel ()
+{}
+
+FixedRssLossModel::~FixedRssLossModel ()
+{}
+
+void 
+FixedRssLossModel::SetRss (double rss)
+{
+  m_rss = rss;
+}
+
+double 
+FixedRssLossModel::DoCalcRxPower (double txPowerDbm,
+                                           Ptr<MobilityModel> a,
+                                           Ptr<MobilityModel> b) const
+{
+  return m_rss;
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (MatrixPropagationLossModel);
+
+TypeId 
+MatrixPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::MatrixPropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<MatrixPropagationLossModel> ()
+    .AddAttribute ("DefaultLoss", "The default value for propagation loss, dB.",
+                   DoubleValue (std::numeric_limits<double>::max ()),
+                   MakeDoubleAccessor (&MatrixPropagationLossModel::m_default),
+                   MakeDoubleChecker<double> ())
+    ;
+  return tid;
+}
+
+MatrixPropagationLossModel::MatrixPropagationLossModel ()
+  : PropagationLossModel (), m_default (std::numeric_limits<double>::max ())
+{
+}
+
+MatrixPropagationLossModel::~MatrixPropagationLossModel ()
+{
+}
+
+void 
+MatrixPropagationLossModel::SetDefaultLoss (double loss)
+{
+  m_default = loss;
+}
+
+void
+MatrixPropagationLossModel::SetLoss (Ptr<MobilityModel> ma, Ptr<MobilityModel> mb, double loss, bool symmetric)
+{
+  NS_ASSERT (ma != 0 && mb != 0);
+
+  MobilityPair p = std::make_pair(ma, mb);
+  std::map<MobilityPair, double>::iterator i = m_loss.find (p);
+  
+  if (i == m_loss.end ())
+    {
+      m_loss.insert (std::make_pair (p, loss));
+    }
+  else
+    {
+      i->second = loss;
+    }
+
+  if (symmetric)
+    {
+      SetLoss (mb, ma, loss, false);
+    }
+}
+
+double 
+MatrixPropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                           Ptr<MobilityModel> a,
+                                           Ptr<MobilityModel> b) const
+{
+  std::map<MobilityPair, double>::const_iterator i = m_loss.find (std::make_pair (a, b));
+  
+  if (i != m_loss.end ())
+    {
+      return txPowerDbm - i->second;
+    }
+  else
+    {
+      return txPowerDbm - m_default;
+    }
+}
+
+// ------------------------------------------------------------------------- //
+
+NS_OBJECT_ENSURE_REGISTERED (RangePropagationLossModel);
+
+TypeId
+RangePropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::RangePropagationLossModel")
+    .SetParent<PropagationLossModel> ()
+    .AddConstructor<RangePropagationLossModel> ()
+    .AddAttribute ("MaxRange",
+                   "Maximum Transmission Range (meters)",
+                   DoubleValue (250),
+                   MakeDoubleAccessor (&RangePropagationLossModel::m_range),
+                   MakeDoubleChecker<double> ())
+  ;
+  return tid;
+}
+
+RangePropagationLossModel::RangePropagationLossModel ()
+{
+}
+
+double
+RangePropagationLossModel::DoCalcRxPower (double txPowerDbm,
+                                          Ptr<MobilityModel> a,
+                                          Ptr<MobilityModel> b) const
+{
+  double distance = a->GetDistanceFrom (b);
+  if (distance <= m_range)
+    {
+      return txPowerDbm;
+    }
+  else
+    {
+      return -1000;
+    }
+}
+
+// ------------------------------------------------------------------------- //
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/model/propagation-loss-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,547 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005,2006,2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
+ * Contributions: Timo Bingmann <timo.bingmann@student.kit.edu>
+ * Contributions: Gary Pei <guangyu.pei@boeing.com> for fixed RSS
+ * Contributions: Tom Hewer <tomhewer@mac.com> for two ray ground model
+ *                Pavel Boyko <boyko@iitp.ru> for matrix
+ */
+
+#ifndef PROPAGATION_LOSS_MODEL_H
+#define PROPAGATION_LOSS_MODEL_H
+
+#include "ns3/object.h"
+#include "ns3/random-variable.h"
+#include <map>
+
+namespace ns3 {
+
+class MobilityModel;
+
+/**
+ * \brief Modelize the propagation loss through a transmission medium
+ *
+ * Calculate the receive power (dbm) from a transmit power (dbm)
+ * and a mobility model for the source and destination positions.
+ */
+class PropagationLossModel : public Object
+{
+public:
+  static TypeId GetTypeId (void);
+
+  PropagationLossModel ();
+  virtual ~PropagationLossModel ();
+
+  /**
+   * \brief Enables a chain of loss models to act on the signal
+   * \param The next PropagationLossModel to add to the chain
+   *
+   * This method of chaining propagation loss models only works commutatively
+   * if the propagation loss of all models in the chain are independent
+   * of transmit power.
+   */
+  void SetNext (Ptr<PropagationLossModel> next);
+
+  /**
+   * \param txPowerDbm current transmission power (in dBm)
+   * \param a the mobility model of the source
+   * \param b the mobility model of the destination
+   * \returns the reception power after adding/multiplying propagation loss (in dBm)
+   */
+  double CalcRxPower (double txPowerDbm,
+                      Ptr<MobilityModel> a,
+                      Ptr<MobilityModel> b) const;
+private:
+  PropagationLossModel (const PropagationLossModel &o);
+  PropagationLossModel &operator = (const PropagationLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const = 0;
+
+  Ptr<PropagationLossModel> m_next;
+};
+
+/**
+ * \brief The propagation loss follows a random distribution.
+ */ 
+class RandomPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+
+  RandomPropagationLossModel ();
+  virtual ~RandomPropagationLossModel ();
+
+private:
+  RandomPropagationLossModel (const RandomPropagationLossModel &o);
+  RandomPropagationLossModel & operator = (const RandomPropagationLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+  RandomVariable m_variable;
+};
+
+/**
+ * \brief a Friis propagation loss model
+ *
+ * The Friis propagation loss model was first described in
+ * "A Note on a Simple Transmission Formula", by 
+ * "Harald T. Friis".
+ * 
+ * The original equation was described as:
+ *  \f$ \frac{P_r}{P_t} = \frac{A_r A_t}{d^2\lambda^2} \f$
+ *  with the following equation for the case of an
+ *  isotropic antenna with no heat loss:
+ *  \f$ A_{isotr.} = \frac{\lambda^2}{4\pi} \f$
+ *
+ * The final equation becomes:
+ * \f$ \frac{P_r}{P_t} = \frac{\lambda^2}{(4 \pi d)^2} \f$
+ *
+ * Modern extensions to this original equation are:
+ * \f$ P_r = \frac{P_t G_t G_r \lambda^2}{(4 \pi d)^2 L}\f$
+ *
+ * With:
+ *  - \f$ P_r \f$ : reception power (W)
+ *  - \f$ P_t \f$ : transmission power (W)
+ *  - \f$ G_t \f$ : transmission gain (unit-less)
+ *  - \f$ G_r \f$ : reception gain (unit-less)
+ *  - \f$ \lambda \f$ : wavelength (m)
+ *  - \f$ d \f$ : distance (m)
+ *  - \f$ L \f$ : system loss (unit-less)
+ *
+ *
+ * This model is invalid for small distance values.
+ * The current implementation returns the txpower as the rxpower
+ * for any distance smaller than MinDistance.
+ */
+class FriisPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  FriisPropagationLossModel ();
+  /**
+   * \param frequency (Hz)
+   * \param speed (m/s)
+   *
+   * Set the main wavelength used in the Friis model 
+   * calculation.
+   */
+  void SetLambda (double frequency, double speed);
+  /**
+   * \param lambda (m) the wavelength
+   *
+   * Set the main wavelength used in the Friis model 
+   * calculation.
+   */
+  void SetLambda (double lambda);
+  /**
+   * \param systemLoss (dimension-less)
+   *
+   * Set the system loss used by the Friis propagation model.
+   */
+  void SetSystemLoss (double systemLoss);
+
+  /**
+   * \param minDistance the minimum distance
+   *
+   * Below this distance, the txpower is returned
+   * unmodified as the rxpower.
+   */
+  void SetMinDistance (double minDistance);
+
+  /**
+   * \returns the minimum distance.
+   */
+  double GetMinDistance (void) const;
+
+  /**
+   * \returns the current wavelength (m)
+   */
+  double GetLambda (void) const;
+  /**
+   * \returns the current system loss (dimension-less)
+   */
+  double GetSystemLoss (void) const;
+
+private:
+  FriisPropagationLossModel (const FriisPropagationLossModel &o);
+  FriisPropagationLossModel & operator = (const FriisPropagationLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+  double DbmToW (double dbm) const;
+  double DbmFromW (double w) const;
+
+  static const double PI;
+  double m_lambda;
+  double m_systemLoss;
+  double m_minDistance;
+};
+
+/*
+ *
+ * \brief a Two-Ray Ground propagation loss model ported from NS2
+ *
+ * Two-ray ground reflection model.
+ *
+ * \f$ Pr = \frac{Pt * Gt * Gr * (ht^2 * hr^2)}{d^4 * L} \f$
+ *
+ * The original equation in Rappaport's book assumes L = 1.
+ * To be consistent with the free space equation, L is added here.
+ *
+ * Ht and Hr are set at the respective nodes z coordinate plus a model parameter
+ * set via SetHeightAboveZ.
+ *
+ * The two-ray model does not give a good result for short distances, due to the
+ * oscillation caused by constructive and destructive combination of the two
+ * rays. Instead the Friis free-space model is used for small distances. 
+ *
+ * The crossover distance, below which Friis is used, is calculated as follows:
+ *
+ * \f$ dCross = \frac{(4 * pi * Ht * Hr)}{lambda} \f$
+ */
+
+class TwoRayGroundPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  TwoRayGroundPropagationLossModel ();
+  /**
+   * \param frequency (Hz)
+   * \param speed (m/s)
+   *
+   * Set the main wavelength used in the TwoRayGround model 
+   * calculation.
+   */
+  void SetLambda (double frequency, double speed);
+  /**
+   * \param lambda (m) the wavelength
+   *
+   * Set the main wavelength used in the TwoRayGround model 
+   * calculation.
+   */
+  void SetLambda (double lambda);
+  /**
+   * \param systemLoss (dimension-less)
+   *
+   * Set the system loss used by the TwoRayGround propagation model.
+   */
+  void SetSystemLoss (double systemLoss);
+  /**
+   * \param minDistance the minimum distance
+   *
+   * Below this distance, the txpower is returned
+   * unmodified as the rxpower.
+   */
+  void SetMinDistance (double minDistance);
+  /**
+   * \returns the minimum distance.
+   */
+  double GetMinDistance (void) const;
+  /**
+   * \returns the current wavelength (m)
+   */
+  double GetLambda (void) const;
+  /**
+   * \returns the current system loss (dimension-less)
+   */
+  double GetSystemLoss (void) const;
+  /**
+   * \param heightAboveZ the model antenna height above the node's Z coordinate
+   *
+   * Set the model antenna height above the node's Z coordinate
+   */
+  void SetHeightAboveZ (double heightAboveZ);
+
+private:
+  TwoRayGroundPropagationLossModel (const TwoRayGroundPropagationLossModel &o);
+  TwoRayGroundPropagationLossModel & operator = (const TwoRayGroundPropagationLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+  double DbmToW (double dbm) const;
+  double DbmFromW (double w) const;
+
+  static const double PI;
+  double m_lambda;
+  double m_systemLoss;
+  double m_minDistance;
+  double m_heightAboveZ;
+};
+
+/**
+ * \brief a log distance propagation model.
+ *
+ * This model calculates the reception power with a so-called
+ * log-distance propagation model:
+ * \f$ L = L_0 + 10 n log_{10}(\frac{d}{d_0})\f$
+ *
+ * where:
+ *  - \f$ n \f$ : the path loss distance exponent
+ *  - \f$ d_0 \f$ : reference distance (m)
+ *  - \f$ L_0 \f$ : path loss at reference distance (dB)
+ *  - \f$ d \f$ : distance (m)
+ *  - \f$ L \f$ : path loss (dB)
+ *
+ * When the path loss is requested at a distance smaller than
+ * the reference distance, the tx power is returned.
+ *
+ */
+class LogDistancePropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  LogDistancePropagationLossModel ();
+
+  /**
+   * \param n the path loss exponent.
+   * Set the path loss exponent.
+   */
+  void SetPathLossExponent (double n);
+  /** 
+   * \returns the current path loss exponent.
+   */
+  double GetPathLossExponent (void) const;
+
+  void SetReference (double referenceDistance, double referenceLoss);
+  
+private:
+  LogDistancePropagationLossModel (const LogDistancePropagationLossModel &o);
+  LogDistancePropagationLossModel & operator = (const LogDistancePropagationLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+  static Ptr<PropagationLossModel> CreateDefaultReference (void);
+
+  double m_exponent;
+  double m_referenceDistance;
+  double m_referenceLoss;
+};
+
+/**
+ * \brief A log distance path loss propagation model with three distance
+ * fields. This model is the same as ns3::LogDistancePropagationLossModel
+ * except that it has three distance fields: near, middle and far with
+ * different exponents.
+ *
+ * Within each field the reception power is calculated using the log-distance
+ * propagation equation:
+ * \f[ L = L_0 + 10 \cdot n_0 log_{10}(\frac{d}{d_0})\f]
+ * Each field begins where the previous ends and all together form a continuous function.
+ *
+ * There are three valid distance fields: near, middle, far. Actually four: the
+ * first from 0 to the reference distance is invalid and returns txPowerDbm.
+ *
+ * \f[ \underbrace{0 \cdots\cdots}_{=0} \underbrace{d_0 \cdots\cdots}_{n_0} \underbrace{d_1 \cdots\cdots}_{n_1} \underbrace{d_2 \cdots\cdots}_{n_2} \infty \f]
+ *
+ * Complete formula for the path loss in dB:
+ *
+ * \f[\displaystyle L =
+\begin{cases}
+0 & d < d_0 \\
+L_0 + 10 \cdot n_0 \log_{10}(\frac{d}{d_0}) & d_0 \leq d < d_1 \\
+L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d}{d_1}) & d_1 \leq d < d_2 \\
+L_0 + 10 \cdot n_0 \log_{10}(\frac{d_1}{d_0}) + 10 \cdot n_1 \log_{10}(\frac{d_2}{d_1}) + 10 \cdot n_2 \log_{10}(\frac{d}{d_2})& d_2 \leq d
+\end{cases}\f]
+ *
+ * where:
+ *  - \f$ L \f$ : resulting path loss (dB)
+ *  - \f$ d \f$ : distance (m)
+ *  - \f$ d_0, d_1, d_2 \f$ : three distance fields (m)
+ *  - \f$ n_0, n_1, n_2 \f$ : path loss distance exponent for each field (unitless)
+ *  - \f$ L_0 \f$ : path loss at reference distance (dB)
+ *
+ * When the path loss is requested at a distance smaller than the reference
+ * distance \f$ d_0 \f$, the tx power (with no path loss) is returned. The
+ * reference distance defaults to 1m and reference loss defaults to
+ * ns3::FriisPropagationLossModel with 5.15 GHz and is thus \f$ L_0 \f$ = 46.67 dB.
+ */
+
+class ThreeLogDistancePropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  ThreeLogDistancePropagationLossModel ();
+
+  // Parameters are all accessible via attributes.
+
+private:
+  ThreeLogDistancePropagationLossModel (const ThreeLogDistancePropagationLossModel& o);
+  ThreeLogDistancePropagationLossModel& operator= (const ThreeLogDistancePropagationLossModel& o);
+
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+
+  double m_distance0;
+  double m_distance1;
+  double m_distance2;
+
+  double m_exponent0;
+  double m_exponent1;
+  double m_exponent2;
+
+  double m_referenceLoss;
+};
+
+/**
+ * \brief Nakagami-m fast fading propagation loss model.
+ *
+ * The Nakagami-m distribution is applied to the power level. The probability
+ * density function is defined as
+ * \f[ p(x; m, \omega) = \frac{2 m^m}{\Gamma(m) \omega^m} x^{2m - 1} e^{-\frac{m}{\omega} x^2} = 2 x \cdot p_{\text{Gamma}}(x^2, m, \frac{m}{\omega}) \f]
+ * with \f$ m \f$ the fading depth parameter and \f$ \omega \f$ the average received power.
+ *
+ * It is implemented by either a ns3::GammaVariable or a ns3::ErlangVariable
+ * random variable.
+ *
+ * Like in ns3::ThreeLogDistancePropagationLossModel, the m parameter is varied
+ * over three distance fields:
+ * \f[ \underbrace{0 \cdots\cdots}_{m_0} \underbrace{d_1 \cdots\cdots}_{m_1} \underbrace{d_2 \cdots\cdots}_{m_2} \infty \f]
+ *
+ * For m = 1 the Nakagami-m distribution equals the Rayleigh distribution. Thus
+ * this model also implements Rayleigh distribution based fast fading.
+ */
+
+class NakagamiPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+
+  NakagamiPropagationLossModel ();
+
+  // Parameters are all accessible via attributes.
+
+private:
+  NakagamiPropagationLossModel (const NakagamiPropagationLossModel& o);
+  NakagamiPropagationLossModel& operator= (const NakagamiPropagationLossModel& o);
+
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+
+  double m_distance1;
+  double m_distance2;
+
+  double m_m0;
+  double m_m1;
+  double m_m2;
+
+  ErlangVariable        m_erlangRandomVariable;
+  GammaVariable         m_gammaRandomVariable;
+};
+
+/**
+ * \brief Return a constant received power level independent of the transmit 
+ *  power
+ *
+ * The received power is constant independent of the transmit power.  The user
+ * must set received power level through the Rss attribute or public 
+ * SetRss() method.  Note that if this loss model is chained to other loss
+ * models via SetNext() method, it can only be the first loss model in such
+ * a chain, or else it will disregard the losses computed by loss models
+ * that precede it in the chain. 
+ */ 
+class FixedRssLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+
+  FixedRssLossModel ();
+  virtual ~FixedRssLossModel ();
+  /**
+   * \param rss (dBm) the received signal strength
+   *
+   * Set the received signal strength (RSS) in dBm.
+   */
+  void SetRss (double rss);
+
+private:
+  FixedRssLossModel (const FixedRssLossModel &o);
+  FixedRssLossModel & operator = (const FixedRssLossModel &o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+  double m_rss;
+};
+
+/**
+ * \brief The propagation loss is fixed for each pair of nodes and doesn't depend on their actual positions.
+ * 
+ * This is supposed to be used by synthetic tests. Note that by default propagation loss is assumed to be symmetric.
+ */
+class MatrixPropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  
+  MatrixPropagationLossModel ();
+  virtual ~MatrixPropagationLossModel ();
+  
+  /**
+   * \brief Set loss (in dB, positive) between pair of ns-3 objects
+   * (typically, nodes).
+   * 
+   * \param ma          Source mobility model
+   * \param mb          Destination mobility model
+   * \param loss        a -> b path loss, positive in dB
+   * \param symmetric   If true (default), both a->b and b->a paths will be affected
+   */ 
+  void SetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b, double loss, bool symmetric = true);
+  /// Set default loss (in dB, positive) to be used, infinity if not set
+  void SetDefaultLoss (double);
+  
+private:
+  virtual double DoCalcRxPower (double txPowerDbm,
+                               Ptr<MobilityModel> a,
+                               Ptr<MobilityModel> b) const;
+private:
+  /// default loss
+  double m_default; 
+  
+  typedef std::pair< Ptr<MobilityModel>, Ptr<MobilityModel> > MobilityPair; 
+  /// Fixed loss between pair of nodes
+  std::map<MobilityPair, double> m_loss;
+};
+
+/**
+ * \brief The propagation loss depends only on the distance (range) between transmitter and receiver.
+ *
+ * The single MaxRange attribute (units of meters) determines path loss.
+ * Receivers at or within MaxRange meters receive the transmission at the
+ * transmit power level. Receivers beyond MaxRange receive at power
+ * -1000 dBm (effectively zero).
+*/
+class RangePropagationLossModel : public PropagationLossModel
+{
+public:
+  static TypeId GetTypeId (void);
+  RangePropagationLossModel ();
+private:
+  RangePropagationLossModel (const RangePropagationLossModel& o);
+  RangePropagationLossModel& operator= (const RangePropagationLossModel& o);
+  virtual double DoCalcRxPower (double txPowerDbm,
+                                Ptr<MobilityModel> a,
+                                Ptr<MobilityModel> b) const;
+private:
+  double m_range;
+};
+
+} // namespace ns3
+
+#endif /* PROPAGATION_LOSS_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/test/propagation-loss-model-test-suite.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,453 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 The Boeing Company
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include "ns3/log.h"
+#include "ns3/abort.h"
+#include "ns3/test.h"
+#include "ns3/config.h"
+#include "ns3/double.h"
+#include "ns3/propagation-loss-model.h"
+#include "ns3/constant-position-mobility-model.h"
+#include "ns3/simulator.h"
+
+using namespace ns3;
+
+NS_LOG_COMPONENT_DEFINE ("PropagationLossModelsTest");
+
+// ===========================================================================
+// This is a simple test to validate propagation loss models of ns-3 wifi.
+// See the chapter in the ns-3 testing and validation guide for more detail
+// ===========================================================================
+//
+class FriisPropagationLossModelTestCase : public TestCase
+{
+public:
+  FriisPropagationLossModelTestCase ();
+  virtual ~FriisPropagationLossModelTestCase ();
+
+private:
+  virtual void DoRun (void);
+
+  typedef struct {
+    Vector m_position;
+    double m_pt;  // dBm
+    double m_pr;  // W
+    double m_tolerance;
+  } TestVector;
+
+  TestVectors<TestVector> m_testVectors;
+};
+
+FriisPropagationLossModelTestCase::FriisPropagationLossModelTestCase ()
+  : TestCase ("Check to see that the ns-3 Friis propagation loss model provides correct received power"), m_testVectors ()
+{
+}
+
+FriisPropagationLossModelTestCase::~FriisPropagationLossModelTestCase ()
+{
+}
+
+void
+FriisPropagationLossModelTestCase::DoRun (void)
+{
+  // The ns-3 testing manual gives more background on the values selected
+  // for this test.  First, set a few defaults. 
+
+  // wavelength at 2.4 GHz is 0.125m
+  Config::SetDefault ("ns3::FriisPropagationLossModel::Lambda", DoubleValue (0.125));
+  Config::SetDefault ("ns3::FriisPropagationLossModel::SystemLoss", DoubleValue (1.0));
+
+  // Select a reference transmit power
+  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
+  double txPowerW = 0.05035702;
+  double txPowerdBm = 10 * log10 (txPowerW) + 30;
+
+  //
+  // We want to test the propagation loss model calculations at a few chosen 
+  // distances and compare the results to those we have manually calculated
+  // according to the model documentation.  The model reference specifies, 
+  // for instance, that the received power at 100m according to the provided
+  // input power will be 4.98265e-10 W.  Since this value specifies the power
+  // to 1e-15 significance, we test the ns-3 calculated value for agreement 
+  // within 5e-16.
+  //
+  TestVector testVector;
+
+  testVector.m_position = Vector (100, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 4.98265e-10;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (500, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 1.99306e-11;
+  testVector.m_tolerance = 5e-17;
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (1000, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 4.98265e-12;
+  testVector.m_tolerance = 5e-18;
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (2000, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 1.24566e-12;
+  testVector.m_tolerance = 5e-18;
+  m_testVectors.Add (testVector);
+
+  // Now, check that the received power values are expected
+
+  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
+  a->SetPosition (Vector (0,0,0));
+  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
+
+  Ptr<FriisPropagationLossModel> lossModel = CreateObject<FriisPropagationLossModel> (); 
+  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
+    {
+      testVector = m_testVectors.Get (i);
+      b->SetPosition (testVector.m_position);
+      double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
+      double resultW =   pow (10.0, resultdBm/10.0)/1000;
+      NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
+    }
+}
+
+// Added for Two-Ray Ground Model - tomhewer@mac.com
+
+class TwoRayGroundPropagationLossModelTestCase : public TestCase
+{
+public:
+  TwoRayGroundPropagationLossModelTestCase ();
+  virtual ~TwoRayGroundPropagationLossModelTestCase ();
+  
+private:
+  virtual void DoRun (void);
+  
+  typedef struct
+  {
+    Vector m_position;
+    double m_pt;  // dBm
+    double m_pr;  // W
+    double m_tolerance;
+  } TestVector;
+  
+  TestVectors<TestVector> m_testVectors;
+};
+
+TwoRayGroundPropagationLossModelTestCase::TwoRayGroundPropagationLossModelTestCase ()
+: TestCase ("Check to see that the ns-3 TwoRayGround propagation loss model provides correct received power"),
+m_testVectors ()
+{
+}
+
+TwoRayGroundPropagationLossModelTestCase::~TwoRayGroundPropagationLossModelTestCase ()
+{
+}
+
+void
+TwoRayGroundPropagationLossModelTestCase::DoRun (void)
+{
+  // wavelength at 2.4 GHz is 0.125m
+  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::Lambda", DoubleValue (0.125));
+  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::SystemLoss", DoubleValue (1.0));
+  
+  // set antenna height to 1.5m above z coordinate
+  Config::SetDefault ("ns3::TwoRayGroundPropagationLossModel::HeightAboveZ", DoubleValue (1.5));
+  
+  // Select a reference transmit power of 17.0206 dBm
+  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
+  double txPowerW = 0.05035702;
+  double txPowerdBm = 10 * log10 (txPowerW) + 30;
+  
+  //
+  // As with the Friis tests above, we want to test the propagation loss 
+  // model calculations at a few chosen distances and compare the results 
+  // to those we can manually calculate. Let us test the ns-3 calculated 
+  // value for agreement to be within 5e-16, as above.
+  //
+  TestVector testVector;
+  
+  // Below the Crossover distance use Friis so this test should be the same as that above
+  // Crossover = (4 * PI * TxAntennaHeight * RxAntennaHeight) / Lamdba
+  // Crossover = (4 * PI * 1.5 * 1.5) / 0.125 = 226.1946m
+  
+  testVector.m_position = Vector (100, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 4.98265e-10;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  // These values are above the crossover distance and therefore use the Two Ray calculation
+  
+  testVector.m_position = Vector (500, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 4.07891862e-12;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  testVector.m_position = Vector (1000, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 2.5493241375e-13;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  testVector.m_position = Vector (2000, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 1.593327585938e-14;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  // Repeat the tests for non-zero z coordinates
+  
+  // Pr = (0.05035702 * (1.5*1.5) * (2.5*2.5)) / (500*500*500*500) = 1.13303295e-11
+  // dCross = (4 * pi * 1.5 * 2.5) / 0.125 = 376.99m
+  testVector.m_position = Vector (500, 0, 1);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 1.13303295e-11;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  // Pr = (0.05035702 * (1.5*1.5) * (5.5*5.5)) / (1000*1000*1000*1000) = 3.42742467375e-12
+  // dCross = (4 * pi * 1.5 * 5.5) / 0.125 = 829.38m
+  testVector.m_position = Vector (1000, 0, 4);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 3.42742467375e-12;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  // Pr = (0.05035702 * (1.5*1.5) * (11.5*11.5)) / (2000*2000*2000*2000) = 9.36522547734e-13
+  // dCross = (4 * pi * 1.5 * 11.5) / 0.125 = 1734.15m
+  testVector.m_position = Vector (2000, 0, 10);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 9.36522547734e-13;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+  
+  
+  // Now, check that the received power values are expected
+  
+  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
+  a->SetPosition (Vector (0,0,0));
+  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
+  
+  Ptr<TwoRayGroundPropagationLossModel> lossModel = CreateObject<TwoRayGroundPropagationLossModel> (); 
+  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
+  {
+    testVector = m_testVectors.Get (i);
+    b->SetPosition (testVector.m_position);
+    double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
+    double resultW =   pow (10.0, resultdBm / 10.0) / 1000;
+    NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
+  }
+}
+
+
+class LogDistancePropagationLossModelTestCase : public TestCase
+{
+public:
+  LogDistancePropagationLossModelTestCase ();
+  virtual ~LogDistancePropagationLossModelTestCase ();
+
+private:
+  virtual void DoRun (void);
+
+  typedef struct {
+    Vector m_position;
+    double m_pt;  // dBm
+    double m_pr;  // W
+    double m_tolerance;
+  } TestVector;
+
+  TestVectors<TestVector> m_testVectors;
+};
+
+LogDistancePropagationLossModelTestCase::LogDistancePropagationLossModelTestCase ()
+  : TestCase ("Check to see that the ns-3 Log Distance propagation loss model provides correct received power"), m_testVectors ()
+{
+}
+
+LogDistancePropagationLossModelTestCase::~LogDistancePropagationLossModelTestCase ()
+{
+}
+
+void
+LogDistancePropagationLossModelTestCase::DoRun (void)
+{
+  // reference loss at 2.4 GHz is 40.045997
+  Config::SetDefault ("ns3::LogDistancePropagationLossModel::ReferenceLoss", DoubleValue (40.045997));
+  Config::SetDefault ("ns3::LogDistancePropagationLossModel::Exponent", DoubleValue (3));
+
+  // Select a reference transmit power
+  // Pt = 10^(17.0206/10)/10^3 = .05035702 W
+  double txPowerW = 0.05035702;
+  double txPowerdBm = 10 * log10 (txPowerW) + 30;
+
+  //
+  // We want to test the propagation loss model calculations at a few chosen 
+  // distances and compare the results to those we have manually calculated
+  // according to the model documentation.  The following "TestVector" objects
+  // will drive the test.
+  //
+  TestVector testVector;
+
+  testVector.m_position = Vector (10, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 4.98265e-9;
+  testVector.m_tolerance = 5e-15; 
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (20, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 6.22831e-10;
+  testVector.m_tolerance = 5e-16;
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (40, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 7.78539e-11;
+  testVector.m_tolerance = 5e-17;
+  m_testVectors.Add (testVector);
+
+  testVector.m_position = Vector (80, 0, 0);
+  testVector.m_pt = txPowerdBm;
+  testVector.m_pr = 9.73173e-12;
+  testVector.m_tolerance = 5e-17;
+  m_testVectors.Add (testVector);
+
+  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
+  a->SetPosition (Vector (0,0,0));
+  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
+
+  Ptr<LogDistancePropagationLossModel> lossModel = CreateObject<LogDistancePropagationLossModel> (); 
+  for (uint32_t i = 0; i < m_testVectors.GetN (); ++i)
+    {
+      testVector = m_testVectors.Get (i);
+      b->SetPosition (testVector.m_position);
+      double resultdBm = lossModel->CalcRxPower (testVector.m_pt, a, b);
+      double resultW =   pow (10.0, resultdBm/10.0)/1000;
+      NS_TEST_EXPECT_MSG_EQ_TOL (resultW, testVector.m_pr, testVector.m_tolerance, "Got unexpected rcv power");
+    }
+}
+
+class MatrixPropagationLossModelTestCase : public TestCase
+{
+public:
+  MatrixPropagationLossModelTestCase ();
+  virtual ~MatrixPropagationLossModelTestCase ();
+
+private:
+  virtual void DoRun (void);
+};
+
+MatrixPropagationLossModelTestCase::MatrixPropagationLossModelTestCase ()
+  : TestCase ("Test MatrixPropagationLossModel")
+{
+}
+
+MatrixPropagationLossModelTestCase::~MatrixPropagationLossModelTestCase ()
+{
+}
+
+void
+MatrixPropagationLossModelTestCase::DoRun (void)
+{
+  Ptr<MobilityModel> m[3];
+  for (int i = 0; i < 3; ++i)
+    {
+      m[i] = CreateObject<ConstantPositionMobilityModel> ();
+    }
+  
+  MatrixPropagationLossModel loss;
+  // no loss by default
+  loss.SetDefaultLoss (0);       
+  // -10 dB for 0 -> 1 and 1 -> 0
+  loss.SetLoss (m[0], m[1], 10);
+  // -30 dB from 0 to 2 and -100 dB from 2 to 0
+  loss.SetLoss (m[0], m[2], 30, /*symmetric = */false);
+  loss.SetLoss (m[2], m[0], 100, /*symmetric = */false);
+  // default from 1 to 2
+  
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[0], m[1]), -10, "Loss 0 -> 1 incorrect");
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[1], m[0]), -10, "Loss 1 -> 0 incorrect");
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[0], m[2]), -30, "Loss 0 -> 2 incorrect");
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[2], m[0]), -100, "Loss 2 -> 0 incorrect");
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[1], m[2]), 0, "Loss 1 -> 2 incorrect");
+  NS_TEST_ASSERT_MSG_EQ (loss.CalcRxPower (0, m[2], m[1]), 0, "Loss 2 -> 1 incorrect");
+
+  Simulator::Destroy ();
+}
+
+class RangePropagationLossModelTestCase : public TestCase
+{
+public:
+  RangePropagationLossModelTestCase ();
+  virtual ~RangePropagationLossModelTestCase ();
+
+private:
+  virtual void DoRun (void);
+};
+
+RangePropagationLossModelTestCase::RangePropagationLossModelTestCase ()
+  : TestCase ("Test RangePropagationLossModel")
+{
+}
+
+RangePropagationLossModelTestCase::~RangePropagationLossModelTestCase ()
+{
+}
+
+void
+RangePropagationLossModelTestCase::DoRun (void)
+{
+  Config::SetDefault ("ns3::RangePropagationLossModel::MaxRange", DoubleValue (127.2));
+  Ptr<MobilityModel> a = CreateObject<ConstantPositionMobilityModel> (); 
+  a->SetPosition (Vector (0,0,0));
+  Ptr<MobilityModel> b = CreateObject<ConstantPositionMobilityModel> (); 
+  b->SetPosition (Vector (127.1,0,0));  // within range
+
+  Ptr<RangePropagationLossModel> lossModel = CreateObject<RangePropagationLossModel> (); 
+
+  double txPwrdBm = -80.0;
+  double tolerance = 1e-6;
+  double resultdBm = lossModel->CalcRxPower (txPwrdBm, a, b);
+  NS_TEST_EXPECT_MSG_EQ_TOL (resultdBm, txPwrdBm, tolerance, "Got unexpected rcv power");
+  b->SetPosition (Vector (127.25,0,0));  // beyond range
+  resultdBm = lossModel->CalcRxPower (txPwrdBm, a, b);
+  NS_TEST_EXPECT_MSG_EQ_TOL (resultdBm, -1000.0, tolerance, "Got unexpected rcv power");
+  Simulator::Destroy ();
+}
+
+class PropagationLossModelsTestSuite : public TestSuite
+{
+public:
+  PropagationLossModelsTestSuite ();
+};
+
+PropagationLossModelsTestSuite::PropagationLossModelsTestSuite ()
+  : TestSuite ("propagation-loss-model", UNIT)
+{
+  AddTestCase (new FriisPropagationLossModelTestCase);
+  AddTestCase (new TwoRayGroundPropagationLossModelTestCase);
+  AddTestCase (new LogDistancePropagationLossModelTestCase);
+  AddTestCase (new MatrixPropagationLossModelTestCase);
+  AddTestCase (new RangePropagationLossModelTestCase);
+}
+
+static PropagationLossModelsTestSuite propagationLossModelsTestSuite;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/propagation/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,22 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+    module = bld.create_ns3_module('propagation', ['node', 'mobility'])
+    module.includes = '.'
+    module.source = [
+        'model/propagation-delay-model.cc',
+        'model/propagation-loss-model.cc',
+        'model/jakes-propagation-loss-model.cc',
+        'model/cost231-propagation-loss-model.cc',
+        'test/propagation-loss-model-test-suite.cc',
+        ]
+
+    headers = bld.new_task_gen('ns3header')
+    headers.module = 'propagation'
+    headers.source = [
+        'model/propagation-delay-model.h',
+        'model/propagation-loss-model.h',
+        'model/jakes-propagation-loss-model.h',
+        'model/cost231-propagation-loss-model.h',
+        ]
+
--- a/src/routing/dsdv/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/routing/dsdv/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    module = bld.create_ns3_module('dsdv', ['internet-stack', 'contrib', 'wifi'])
+    module = bld.create_ns3_module('dsdv', ['internet-stack', 'contrib', 'wifi', 'helper'])
     module.includes = '.'
     module.source = [
         'model/dsdv-rtable.cc',
--- a/src/routing/global-routing/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/routing/global-routing/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    module = bld.create_ns3_module('global-routing', ['node'])
+    module = bld.create_ns3_module('global-routing', ['node', 'helper'])
     module.source = [
         'model/global-router-interface.cc',
         'model/global-route-manager.cc',
--- a/src/routing/list-routing/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/routing/list-routing/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    module = bld.create_ns3_module('list-routing', ['node'])
+    module = bld.create_ns3_module('list-routing', ['node', 'helper'])
     module.source = [
         'model/ipv4-list-routing.cc',
         'model/ipv6-list-routing.cc',
--- a/src/routing/olsr/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/routing/olsr/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    module = bld.create_ns3_module('olsr', ['internet-stack', 'contrib'])
+    module = bld.create_ns3_module('olsr', ['internet-stack', 'contrib', 'helper'])
     module.includes = '.'
     module.source = [
         'model/olsr-header.cc',
--- a/src/routing/static-routing/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/routing/static-routing/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -1,7 +1,7 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 def build(bld):
-    module = bld.create_ns3_module('static-routing', ['node'])
+    module = bld.create_ns3_module('static-routing', ['node', 'helper'])
     module.source = [
         'model/ipv4-static-routing.cc',
         'model/ipv4-routing-table-entry.cc',
--- a/src/simulator/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/simulator/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -125,6 +125,8 @@
                 'wall-clock-synchronizer.cc',
                 ])
         sim.uselib = 'RT'
+    else:
+        sim.uselib = ''
 
     if env['ENABLE_THREADING']:
         sim.source.extend([
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,266 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+
+#include <iostream>
+
+#include <ns3/core-module.h>
+#include <ns3/common-module.h>
+#include <ns3/node-module.h>
+#include <ns3/simulator-module.h>
+#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
+#include <ns3/spectrum-model-300kHz-300GHz-log.h>
+#include <ns3/wifi-spectrum-value-helper.h>
+#include <ns3/multi-model-spectrum-channel.h>
+#include <ns3/waveform-generator.h>
+#include <ns3/spectrum-analyzer.h>
+#include <ns3/log.h>
+#include <string>
+#include <ns3/friis-spectrum-propagation-loss.h>
+#include <ns3/propagation-delay-model.h>
+#include <ns3/mobility-module.h>
+#include <ns3/spectrum-helper.h>
+#include <ns3/helper-module.h>
+#include <ns3/adhoc-aloha-noack-ideal-phy-helper.h>
+#include <ns3/waveform-generator-helper.h>
+#include <ns3/spectrum-analyzer-helper.h>
+#include <ns3/non-communicating-net-device.h>
+#include <ns3/microwave-oven-spectrum-value-helper.h>
+
+NS_LOG_COMPONENT_DEFINE ("OfdmWithWaveformGenerator");
+
+using namespace ns3;
+
+static bool g_verbose = false;
+
+
+void
+PhyTxStartTrace (std::string context, Ptr<const Packet> p)
+{  
+  if (g_verbose)
+    {
+      std::cout << context << " PHY TX START p: " << p << std::endl;
+    }
+}
+
+
+void
+PhyTxEndTrace (std::string context, Ptr<const Packet> p)
+{  
+  if (g_verbose)
+    {
+      std::cout << context << " PHY TX END p: " << p << std::endl;
+    }
+}
+
+void
+PhyRxStartTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX START p:" << p << std::endl; 
+    }
+}
+
+void
+PhyRxEndOkTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX END OK p:" << p << std::endl; 
+    }
+}
+
+void
+PhyRxEndErrorTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX END ERROR p:" << p << std::endl; 
+    }
+}
+
+
+void
+ReceivePacket (Ptr<Socket> socket)
+{
+  Ptr<Packet> packet;
+  uint64_t bytes = 0;
+  while (packet = socket->Recv ())
+    {
+      bytes += packet->GetSize ();
+    }
+  if (g_verbose)
+    {
+      std::cout << "SOCKET received " << bytes << " bytes" <<std::endl; 
+    }
+}
+
+Ptr<Socket>
+SetupPacketReceive (Ptr<Node> node)
+{
+  TypeId tid = TypeId::LookupByName ("ns3::PacketSocketFactory");
+  Ptr<Socket> sink = Socket::CreateSocket (node, tid);
+  sink->Bind ();
+  sink->SetRecvCallback (MakeCallback (&ReceivePacket));
+  return sink;
+}
+
+int main (int argc, char** argv)
+{
+  CommandLine cmd;
+  cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
+  cmd.Parse (argc, argv);
+  
+  NodeContainer ofdmNodes;
+  NodeContainer waveformGeneratorNodes;
+  NodeContainer spectrumAnalyzerNodes;
+  NodeContainer allNodes;
+  
+  ofdmNodes.Create (2);
+  waveformGeneratorNodes.Create (1);
+  spectrumAnalyzerNodes.Create (1);
+  allNodes.Add (ofdmNodes);
+  allNodes.Add (waveformGeneratorNodes);
+  allNodes.Add (spectrumAnalyzerNodes);
+
+  MobilityHelper mobility;
+  Ptr<ListPositionAllocator> nodePositionList = CreateObject<ListPositionAllocator> ();
+  nodePositionList->Add (Vector (5.0, 0.0, 0.0));  // TX node
+  nodePositionList->Add (Vector (0.0, 0.0, 0.0));  // RX node
+  nodePositionList->Add (Vector (10.0, 0.0, 0.0)); // Microwave Oven
+  nodePositionList->Add (Vector (0.0, 0.0, 0.0));  // Spectrum Analyzer
+  mobility.SetPositionAllocator (nodePositionList);
+  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+
+  mobility.Install (allNodes);
+
+   
+  SpectrumChannelHelper channelHelper = SpectrumChannelHelper::Default ();
+  channelHelper.SetChannel ("ns3::MultiModelSpectrumChannel");
+  Ptr<SpectrumChannel> channel = channelHelper.Create ();
+
+
+  /////////////////////////
+  // Configure ofdm nodes
+  ////////////////////////
+
+  WifiSpectrumValue5MhzFactory sf;
+
+  double txPower = 0.1; // Watts
+  uint32_t channelNumber = 2;
+  Ptr<SpectrumValue> txPsd =  sf.CreateTxPowerSpectralDensity (txPower, channelNumber);  
+  
+  // for the noise, we use the Power Spectral Density of thermal noise
+  // at room temperature. The value of the PSD will be constant over the band of interest.  
+  const double k = 1.381e-23; //Boltzmann's constant
+  const double T = 290; // temperature in Kelvin
+  double noisePsdValue = k*T; // watts per hertz
+  Ptr<SpectrumValue> noisePsd = sf.CreateConstant (noisePsdValue); 
+  
+
+  AdhocAlohaNoackIdealPhyHelper adhocAlohaOfdmHelper;
+  adhocAlohaOfdmHelper.SetChannel(channel);
+  adhocAlohaOfdmHelper.SetTxPowerSpectralDensity (txPsd);
+  adhocAlohaOfdmHelper.SetNoisePowerSpectralDensity (noisePsd);
+  adhocAlohaOfdmHelper.SetPhyAttribute ("Rate", DataRateValue (DataRate ("1Mbps")));
+  NetDeviceContainer ofdmDevices = adhocAlohaOfdmHelper.Install (ofdmNodes);
+
+  PacketSocketHelper packetSocket;
+  packetSocket.Install (ofdmNodes);
+
+  PacketSocketAddress socket;
+  socket.SetSingleDevice(ofdmDevices.Get (0)->GetIfIndex ());
+  socket.SetPhysicalAddress (ofdmDevices.Get (1)->GetAddress ());
+  socket.SetProtocol (1);
+
+  OnOffHelper onoff ("ns3::PacketSocketFactory", Address (socket));
+  onoff.SetAttribute ("OnTime", RandomVariableValue (ExponentialVariable (0.4)));
+  onoff.SetAttribute ("OffTime", RandomVariableValue (ExponentialVariable (0.1)));
+  onoff.SetAttribute ("DataRate", DataRateValue (DataRate ("0.4Mbps")));
+  onoff.SetAttribute ("PacketSize", UintegerValue (1500));
+
+  ApplicationContainer apps = onoff.Install (ofdmNodes.Get (0));
+  apps.Start (Seconds (0.0));
+  apps.Stop (Seconds (2));
+  
+  Ptr<Socket> recvSink = SetupPacketReceive (ofdmNodes.Get (1));
+
+
+
+
+  
+  /////////////////////////////////
+  // Configure waveform generator
+  /////////////////////////////////
+
+  Ptr<SpectrumValue> mwoPsd =  MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo1 ();
+  NS_LOG_INFO ("mwoPsd : " << *mwoPsd);
+
+  WaveformGeneratorHelper waveformGeneratorHelper;
+  waveformGeneratorHelper.SetChannel(channel);
+  waveformGeneratorHelper.SetTxPowerSpectralDensity (mwoPsd);
+
+  waveformGeneratorHelper.SetPhyAttribute ("Period", TimeValue(Seconds(1.0/60)));   // corresponds to 60 Hz 
+  waveformGeneratorHelper.SetPhyAttribute ("DutyCycle", DoubleValue(0.5));
+  NetDeviceContainer waveformGeneratorDevices = waveformGeneratorHelper.Install (waveformGeneratorNodes);
+  
+  Simulator::Schedule(Seconds(0.1), &WaveformGenerator::Start, 
+  		      waveformGeneratorDevices.Get (0)->GetObject<NonCommunicatingNetDevice> ()->GetPhy ()->GetObject<WaveformGenerator> ());
+
+
+  
+  /////////////////////////////////
+  // Configure spectrum analyzer
+  /////////////////////////////////
+
+
+  SpectrumAnalyzerHelper spectrumAnalyzerHelper;
+  spectrumAnalyzerHelper.SetChannel(channel);
+  spectrumAnalyzerHelper.SetRxSpectrumModel (SpectrumModelIsm2400MhzRes1Mhz);
+  spectrumAnalyzerHelper.SetPhyAttribute ("Resolution", TimeValue(MilliSeconds (2)));   
+  spectrumAnalyzerHelper.SetPhyAttribute ("NoisePowerSpectralDensity", DoubleValue (1e-15));  // -120 dBm/Hz
+  spectrumAnalyzerHelper.EnableAsciiAll ("spectrum-analyzer-output");   
+  NetDeviceContainer spectrumAnalyzerDevices = spectrumAnalyzerHelper.Install (spectrumAnalyzerNodes);
+
+
+
+
+
+
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxStart", MakeCallback (&PhyTxStartTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxEnd", MakeCallback (&PhyTxEndTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxStart", MakeCallback (&PhyRxStartTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndOk", MakeCallback (&PhyRxEndOkTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndError", MakeCallback (&PhyRxEndErrorTrace));
+  
+
+
+
+Simulator::Stop (Seconds (0.3));
+
+Simulator::Run ();
+
+Simulator::Destroy ();
+
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/examples/adhoc-aloha-ideal-phy.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,198 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+
+#include <iostream>
+
+#include <ns3/core-module.h>
+#include <ns3/common-module.h>
+#include <ns3/node-module.h>
+#include <ns3/simulator-module.h>
+#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
+#include <ns3/spectrum-model-300kHz-300GHz-log.h>
+#include <ns3/wifi-spectrum-value-helper.h>
+#include <ns3/single-model-spectrum-channel.h>
+#include <ns3/waveform-generator.h>
+#include <ns3/spectrum-analyzer.h>
+#include <ns3/log.h>
+#include <string>
+#include <ns3/friis-spectrum-propagation-loss.h>
+#include <ns3/propagation-delay-model.h>
+#include <ns3/mobility-module.h>
+#include <ns3/spectrum-helper.h>
+#include <ns3/helper-module.h>
+#include <ns3/adhoc-aloha-noack-ideal-phy-helper.h>
+
+NS_LOG_COMPONENT_DEFINE ("TestAdhocOfdmAloha");
+
+using namespace ns3;
+
+static bool g_verbose = false;
+
+void
+PhyTxStartTrace (std::string context, Ptr<const Packet> p)
+{  
+  if (g_verbose)
+    {
+      std::cout << context << " PHY TX START p: " << p << std::endl;
+    }
+}
+
+
+void
+PhyTxEndTrace (std::string context, Ptr<const Packet> p)
+{  
+  if (g_verbose)
+    {
+      std::cout << context << " PHY TX END p: " << p << std::endl;
+    }
+}
+
+void
+PhyRxStartTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX START p:" << p << std::endl; 
+    }
+}
+
+void
+PhyRxEndOkTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX END OK p:" << p << std::endl; 
+    }
+}
+
+void
+PhyRxEndErrorTrace (std::string context, Ptr<const Packet> p)
+{
+  if (g_verbose)
+    {
+      std::cout << context << " PHY RX END ERROR p:" << p << std::endl; 
+    }
+}
+
+
+void
+ReceivePacket (Ptr<Socket> socket)
+{
+  Ptr<Packet> packet;
+  uint64_t bytes = 0;
+  while (packet = socket->Recv ())
+    {
+      bytes += packet->GetSize ();
+    }
+  if (g_verbose)
+    {
+      std::cout << "SOCKET received " << bytes << " bytes" <<std::endl; 
+    }
+}
+
+Ptr<Socket>
+SetupPacketReceive (Ptr<Node> node)
+{
+  TypeId tid = TypeId::LookupByName ("ns3::PacketSocketFactory");
+  Ptr<Socket> sink = Socket::CreateSocket (node, tid);
+  sink->Bind ();
+  sink->SetRecvCallback (MakeCallback (&ReceivePacket));
+  return sink;
+}
+
+int main (int argc, char** argv)
+{
+  CommandLine cmd;
+  cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
+  cmd.Parse (argc, argv);
+  
+  NodeContainer c;
+  c.Create (2);
+
+  MobilityHelper mobility;
+  Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
+  positionAlloc->Add (Vector (0.0, 0.0, 0.0));
+  positionAlloc->Add (Vector (5.0, 0.0, 0.0));
+  mobility.SetPositionAllocator (positionAlloc);
+  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+
+  mobility.Install (c);
+  
+   
+  SpectrumChannelHelper channelHelper = SpectrumChannelHelper::Default ();
+  Ptr<SpectrumChannel> channel = channelHelper.Create ();
+
+  WifiSpectrumValue5MhzFactory sf;
+
+  double txPower = 0.1; // Watts
+  uint32_t channelNumber = 1;
+  Ptr<SpectrumValue> txPsd =  sf.CreateTxPowerSpectralDensity (txPower, channelNumber);  
+  
+  // for the noise, we use the Power Spectral Density of thermal noise
+  // at room temperature. The value of the PSD will be constant over the band of interest.  
+  const double k = 1.381e-23; //Boltzmann's constant
+  const double T = 290; // temperature in Kelvin
+  double noisePsdValue = k*T; // watts per hertz
+  Ptr<SpectrumValue> noisePsd = sf.CreateConstant (noisePsdValue);   
+
+  AdhocAlohaNoackIdealPhyHelper deviceHelper;
+  deviceHelper.SetChannel(channel);
+  deviceHelper.SetTxPowerSpectralDensity (txPsd);
+  deviceHelper.SetNoisePowerSpectralDensity (noisePsd);
+  deviceHelper.SetPhyAttribute ("Rate", DataRateValue (DataRate ("1Mbps")));
+  NetDeviceContainer devices = deviceHelper.Install (c);
+
+  PacketSocketHelper packetSocket;
+  packetSocket.Install (c);
+
+  PacketSocketAddress socket;
+  socket.SetSingleDevice(devices.Get (0)->GetIfIndex ());
+  socket.SetPhysicalAddress (devices.Get (1)->GetAddress ());
+  socket.SetProtocol (1);
+
+  OnOffHelper onoff ("ns3::PacketSocketFactory", Address (socket));
+  onoff.SetAttribute ("OnTime", RandomVariableValue (ConstantVariable (250)));
+  onoff.SetAttribute ("OffTime", RandomVariableValue (ConstantVariable (0)));
+  onoff.SetAttribute ("DataRate", DataRateValue (DataRate ("0.5Mbps")));
+  onoff.SetAttribute ("PacketSize", UintegerValue (125));
+
+  ApplicationContainer apps = onoff.Install (c.Get (0));
+  apps.Start (Seconds (0.1));
+  apps.Stop (Seconds (0.104));
+  
+  Ptr<Socket> recvSink = SetupPacketReceive (c.Get (1));
+
+  Simulator::Stop (Seconds (10.0));
+
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxStart", MakeCallback (&PhyTxStartTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/TxEnd", MakeCallback (&PhyTxEndTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxStart", MakeCallback (&PhyRxStartTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndOk", MakeCallback (&PhyRxEndOkTrace));
+  Config::Connect ("/NodeList/*/DeviceList/*/Phy/RxEndError", MakeCallback (&PhyRxEndErrorTrace));
+
+
+  Simulator::Run ();
+
+  Simulator::Destroy ();
+
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/examples/waf	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,1 @@
+exec "`dirname "$0"`"/../../waf "$@"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/examples/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,12 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+    obj = bld.create_ns3_program('adhoc-aloha-ideal-phy',
+                                 ['spectrum'])
+    obj.source = 'adhoc-aloha-ideal-phy.cc'
+
+    obj = bld.create_ns3_program('adhoc-aloha-ideal-phy-with-microwave-oven',
+                                 ['spectrum'])
+    obj.source = 'adhoc-aloha-ideal-phy-with-microwave-oven.cc'
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/adhoc-aloha-noack-ideal-phy-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,157 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+#include "ns3/propagation-delay-model.h"
+#include "ns3/spectrum-propagation-loss-model.h"
+#include "ns3/mobility-model.h"
+#include "ns3/log.h"
+#include "ns3/config.h"
+#include "ns3/simulator.h"
+#include "ns3/names.h"
+#include "ns3/spectrum-channel.h"
+#include "ns3/half-duplex-ideal-phy.h"
+#include "ns3/mac48-address.h"
+#include "ns3/aloha-noack-net-device.h"
+#include "adhoc-aloha-noack-ideal-phy-helper.h"
+
+
+
+
+NS_LOG_COMPONENT_DEFINE ("AdhocAlohaNoackIdealPhyHelper");
+
+namespace ns3 {
+
+
+AdhocAlohaNoackIdealPhyHelper::AdhocAlohaNoackIdealPhyHelper ()
+{
+  m_phy.SetTypeId ("ns3::HalfDuplexIdealPhy");
+  m_device.SetTypeId ("ns3::AlohaNoackNetDevice");
+  m_queue.SetTypeId ("ns3::DropTailQueue");
+}
+
+AdhocAlohaNoackIdealPhyHelper::~AdhocAlohaNoackIdealPhyHelper ()
+{
+}
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetChannel (Ptr<SpectrumChannel> channel)
+{
+  m_channel = channel;
+}
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetChannel (std::string channelName)
+{
+  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
+  m_channel = channel;
+}
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
+{
+  NS_LOG_FUNCTION (this << txPsd);
+  m_txPsd = txPsd;
+}
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity (Ptr<SpectrumValue> noisePsd)
+{
+  NS_LOG_FUNCTION (this << noisePsd);
+  m_noisePsd = noisePsd;
+}
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
+{
+  m_phy.Set (name, v);
+}
+
+
+void
+AdhocAlohaNoackIdealPhyHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
+{
+  m_device.Set (name, v);
+}
+
+NetDeviceContainer
+AdhocAlohaNoackIdealPhyHelper::Install (NodeContainer c) const
+{
+  NetDeviceContainer devices;
+  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
+    {
+      Ptr<Node> node = *i;
+
+      Ptr<AlohaNoackNetDevice> dev = (m_device.Create ())->GetObject<AlohaNoackNetDevice> ();
+      dev->SetAddress (Mac48Address::Allocate ());
+      Ptr<Queue> q = (m_queue.Create ())->GetObject<Queue> ();
+      dev->SetQueue (q);
+
+      // note that we could have used a SpectrumPhyHelper here, but
+      // given that it is straightforward to handle the configuration
+      // in this helper here, we avoid asking the user to pass us a
+      // SpectrumPhyHelper, so to spare him some typing.
+
+      Ptr<HalfDuplexIdealPhy>  phy = (m_phy.Create ())->GetObject<HalfDuplexIdealPhy> ();
+      NS_ASSERT (phy);
+
+      dev->SetPhy (phy);
+
+      NS_ASSERT (node);
+      phy->SetMobility (node);
+
+      NS_ASSERT (dev);
+      phy->SetDevice (dev);
+
+      NS_ASSERT_MSG (m_txPsd, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetTxPowerSpectralDensity ()");
+      phy->SetTxPowerSpectralDensity (m_txPsd);
+
+      NS_ASSERT_MSG (m_noisePsd, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetNoisePowerSpectralDensity ()");
+      phy->SetNoisePowerSpectralDensity (m_noisePsd);
+
+      NS_ASSERT_MSG (m_channel, "you forgot to call AdhocAlohaNoackIdealPhyHelper::SetChannel ()");
+      phy->SetChannel (m_channel);
+      dev->SetChannel (m_channel);
+      m_channel->AddRx (phy);
+
+      phy->SetPhyMacTxEndCallback   (MakeCallback (&AlohaNoackNetDevice::NotifyTransmissionEnd, dev));
+      phy->SetPhyMacRxStartCallback (MakeCallback (&AlohaNoackNetDevice::NotifyReceptionStart, dev));
+      phy->SetPhyMacRxEndOkCallback (MakeCallback (&AlohaNoackNetDevice::NotifyReceptionEndOk, dev));
+      dev->SetPhyMacTxStartCallback (MakeCallback (&HalfDuplexIdealPhy::StartTx, phy));
+
+      node->AddDevice (dev);
+      devices.Add (dev);
+    }
+  return devices;
+}
+
+NetDeviceContainer
+AdhocAlohaNoackIdealPhyHelper::Install (Ptr<Node> node) const
+{
+  return Install (NodeContainer (node));
+}
+
+NetDeviceContainer
+AdhocAlohaNoackIdealPhyHelper::Install (std::string nodeName) const
+{
+  Ptr<Node> node = Names::Find<Node> (nodeName);
+  return Install (node);
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/adhoc-aloha-noack-ideal-phy-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,124 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H
+#define ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H
+
+#include <string>
+#include <ns3/attribute.h>
+#include <ns3/object-factory.h>
+#include <ns3/node-container.h>
+#include <ns3/net-device-container.h>
+#include <ns3/queue.h>
+
+
+namespace ns3 {
+
+
+class SpectrumValue;
+class SpectrumChannel;
+
+/**
+ *
+ * create the NetDevice depicted in the figure
+ * @image html HdOfdmAlohaNoAck.png
+ *
+ */
+class AdhocAlohaNoackIdealPhyHelper
+{
+public:
+  AdhocAlohaNoackIdealPhyHelper ();
+  ~AdhocAlohaNoackIdealPhyHelper ();
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channel
+   */
+  void SetChannel (Ptr<SpectrumChannel> channel);
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channelName
+   */
+  void SetChannel (std::string channelName);
+
+
+  /**
+   *
+   * @param txPsd the Power Spectral Density to be used for transmission by all created PHY instances
+   */
+  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
+
+  /**
+   *
+   * @param noisePsd the Power Spectral Density to be used for transmission by all created PHY instances
+   */
+  void SetNoisePowerSpectralDensity (Ptr<SpectrumValue> noisePsd);
+
+  /**
+   * @param name the name of the attribute to set
+   * @param v the value of the attribute
+   *
+   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
+   */
+  void SetPhyAttribute (std::string name, const AttributeValue &v);
+
+  /**
+   * @param n1 the name of the attribute to set
+   * @param v1 the value of the attribute to set
+   *
+   * Set these attributes on each AlohaNoackNetDevice created
+   */
+  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
+
+
+  /**
+    * @param c the set of nodes on which a device must be created
+    * @return a device container which contains all the devices created by this method.
+    */
+  NetDeviceContainer Install (NodeContainer c) const;
+  /**
+   * @param node the node on which a device must be created
+   * \returns a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (Ptr<Node> node) const;
+  /**
+   * @param nodeName the name of node on which a device must be created
+   * @return a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (std::string nodeName) const;
+
+
+protected:
+  ObjectFactory m_phy;
+  ObjectFactory m_device;
+  ObjectFactory m_queue;
+  Ptr<SpectrumChannel> m_channel;
+  Ptr<SpectrumValue> m_txPsd;
+  Ptr<SpectrumValue> m_noisePsd;
+};
+
+
+
+} // namespace ns3
+
+#endif /* ADHOC_ALOHA_NOACK_IDEAL_PHY_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/spectrum-analyzer-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,200 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+#include "ns3/propagation-delay-model.h"
+#include "ns3/spectrum-propagation-loss-model.h"
+#include "ns3/mobility-model.h"
+#include "ns3/log.h"
+#include "ns3/config.h"
+#include "ns3/simulator.h"
+#include "ns3/names.h"
+#include "ns3/spectrum-channel.h"
+#include "ns3/spectrum-analyzer.h"
+#include "ns3/non-communicating-net-device.h"
+#include "ns3/output-stream-wrapper.h"
+#include "ns3/trace-helper.h"
+#include "spectrum-analyzer-helper.h"
+
+
+
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumAnalyzerHelper");
+
+namespace ns3 {
+
+
+static void 
+WriteAveragePowerSpectralDensityReport (Ptr<OutputStreamWrapper> streamWrapper, 
+                                        Ptr<const SpectrumValue> avgPowerSpectralDensity)
+{
+  NS_LOG_FUNCTION (streamWrapper << avgPowerSpectralDensity);
+  std::ostream* ostream = streamWrapper->GetStream ();
+  if (ostream->good ())
+    {
+      Bands::const_iterator fi = avgPowerSpectralDensity->ConstBandsBegin ();
+      Values::const_iterator vi = avgPowerSpectralDensity->ConstValuesBegin ();
+      while (fi != avgPowerSpectralDensity->ConstBandsEnd ())
+        {
+          NS_ASSERT (vi != avgPowerSpectralDensity->ConstValuesEnd ());
+          *ostream << Now ().GetSeconds () << " "
+                   << fi->fc << " "
+                   << *vi << std::endl;
+          ++fi;
+          ++vi;
+        }
+      // An additional line separates different spectrums sweeps
+      *ostream << std::endl;
+    }
+}
+  
+
+
+SpectrumAnalyzerHelper::SpectrumAnalyzerHelper ()
+{
+  NS_LOG_FUNCTION (this);
+  m_phy.SetTypeId ("ns3::SpectrumAnalyzer");
+  m_device.SetTypeId ("ns3::NonCommunicatingNetDevice");
+}
+
+SpectrumAnalyzerHelper::~SpectrumAnalyzerHelper ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+SpectrumAnalyzerHelper::SetChannel (Ptr<SpectrumChannel> channel)
+{
+  NS_LOG_FUNCTION (this);
+  m_channel = channel;
+}
+
+void
+SpectrumAnalyzerHelper::SetChannel (std::string channelName)
+{
+  NS_LOG_FUNCTION (this);
+  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
+  m_channel = channel;
+}
+
+
+void
+SpectrumAnalyzerHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
+{
+  NS_LOG_FUNCTION (this);
+  m_phy.Set (name, v);
+}
+
+
+void
+SpectrumAnalyzerHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
+{
+  NS_LOG_FUNCTION (this);
+  m_device.Set (name, v);
+}
+
+ 
+void
+SpectrumAnalyzerHelper::SetRxSpectrumModel (Ptr<SpectrumModel> m)
+{
+  NS_LOG_FUNCTION (this);
+  m_rxSpectrumModel = m;
+}
+
+void
+SpectrumAnalyzerHelper::EnableAsciiAll (std::string prefix)
+{
+  NS_LOG_FUNCTION (this);
+  m_prefix = prefix;
+}  
+
+
+
+NetDeviceContainer
+SpectrumAnalyzerHelper::Install (NodeContainer c) const
+{
+  NS_LOG_FUNCTION (this);
+  NetDeviceContainer devices;
+  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
+    {
+      Ptr<Node> node = *i;
+
+      Ptr<NonCommunicatingNetDevice> dev = m_device.Create ()->GetObject<NonCommunicatingNetDevice> ();
+     
+      Ptr<SpectrumAnalyzer>  phy = m_phy.Create ()->GetObject<SpectrumAnalyzer> ();
+      NS_ASSERT (phy);
+
+      dev->SetPhy (phy);
+
+      NS_ASSERT (node);
+      phy->SetMobility (node);
+
+      NS_ASSERT (dev);
+      phy->SetDevice (dev);
+
+      NS_ASSERT_MSG (m_rxSpectrumModel, "you forgot to call SpectrumAnalyzerHelper::SetRxSpectrumModel ()");
+      phy->SetRxSpectrumModel (m_rxSpectrumModel);
+
+      NS_ASSERT_MSG (m_channel, "you forgot to call SpectrumAnalyzerHelper::SetChannel ()");
+      m_channel->AddRx (phy);
+
+      dev->SetChannel (m_channel);
+
+      uint32_t devId = node->AddDevice (dev);
+      devices.Add (dev);
+
+      if (! m_prefix.empty ())
+        {
+          NS_LOG_LOGIC ("creating new output stream and binding it to the callback");
+          AsciiTraceHelper asciiTraceHelper;
+          std::string filename;
+          filename = asciiTraceHelper.GetFilenameFromDevice (m_prefix, dev);
+          Ptr<OutputStreamWrapper> stream = asciiTraceHelper.CreateFileStream (filename);
+
+          // note that we don't use AsciiTraceHelper to connect the trace sink, since we use a custom trace sink
+
+          // the following is inspired from YansWifiPhyHelper::EnableAsciiInternal
+          std::ostringstream oss;
+          oss.str (""); 
+          oss << "/NodeList/" << node->GetId () << "/DeviceList/" << devId << "/$ns3::NonCommunicatingNetDevice/Phy/AveragePowerSpectralDensityReport";
+          Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&WriteAveragePowerSpectralDensityReport, stream));
+
+          phy->Start ();
+
+        }
+    }
+  return devices;
+}
+
+NetDeviceContainer
+SpectrumAnalyzerHelper::Install (Ptr<Node> node) const
+{
+  NS_LOG_FUNCTION (this);
+  return Install (NodeContainer (node));
+}
+
+NetDeviceContainer
+SpectrumAnalyzerHelper::Install (std::string nodeName) const
+{
+  NS_LOG_FUNCTION (this);
+  Ptr<Node> node = Names::Find<Node> (nodeName);
+  return Install (node);
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/spectrum-analyzer-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,120 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_ANALYZER_HELPER_H
+#define SPECTRUM_ANALYZER_HELPER_H
+
+
+#include <string>
+#include <ns3/attribute.h>
+#include <ns3/object-factory.h>
+#include <ns3/node-container.h>
+#include <ns3/net-device-container.h>
+#include <ns3/queue.h>
+
+
+namespace ns3 {
+
+
+class SpectrumValue;
+class SpectrumChannel;
+class SpectrumModel;
+
+class SpectrumAnalyzerHelper
+{
+public:
+  SpectrumAnalyzerHelper ();
+  ~SpectrumAnalyzerHelper ();
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channel
+   */
+  void SetChannel (Ptr<SpectrumChannel> channel);
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channelName
+   */
+  void SetChannel (std::string channelName);
+
+  /**
+   * @param name the name of the attribute to set
+   * @param v the value of the attribute
+   *
+   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
+   */
+  void SetPhyAttribute (std::string name, const AttributeValue &v);
+
+  /**
+   * @param n1 the name of the attribute to set
+   * @param v1 the value of the attribute to set
+   *
+   * Set these attributes on each AlohaNoackNetDevice created
+   */
+  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
+
+  /**
+   * Set the spectrum model used by the created SpectrumAnalyzer instances to represent incoming signals
+   *
+   * @param m 
+   */
+  void SetRxSpectrumModel (Ptr<SpectrumModel> m);
+
+
+  /** 
+   * Enable ASCII output. This will create one filename for every created SpectrumAnalyzer instance.
+   * 
+   * @param prefix the prefix of the filename of the traces that will be created.
+   */
+  void EnableAsciiAll (std::string prefix);
+
+  /**
+    * @param c the set of nodes on which a device must be created
+    * @return a device container which contains all the devices created by this method.
+    */
+  NetDeviceContainer Install (NodeContainer c) const;
+  /**
+   * @param node the node on which a device must be created
+   * \returns a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (Ptr<Node> node) const;
+  /**
+   * @param nodeName the name of node on which a device must be created
+   * @return a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (std::string nodeName) const;
+
+
+private:
+  ObjectFactory m_phy;
+  ObjectFactory m_device;
+  Ptr<SpectrumChannel> m_channel;
+  Ptr<SpectrumModel> m_rxSpectrumModel;
+  std::string m_prefix;
+};
+
+
+} // namespace ns3
+
+
+#endif /* SPECTRUM_ANALYZER_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/spectrum-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,202 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+#include "spectrum-helper.h"
+#include <ns3/simulator.h>
+#include <ns3/config.h>
+#include <ns3/names.h>
+#include <ns3/spectrum-propagation-loss-model.h>
+#include <ns3/propagation-delay-model.h>
+#include <ns3/spectrum-channel.h>
+#include <ns3/spectrum-phy.h>
+#include <ns3/single-model-spectrum-channel.h>
+#include <ns3/multi-model-spectrum-channel.h>
+#include <ns3/half-duplex-ideal-phy.h>
+
+
+namespace ns3 {
+
+
+SpectrumChannelHelper
+SpectrumChannelHelper::Default (void)
+{
+  SpectrumChannelHelper h;
+  h.SetChannel ("ns3::SingleModelSpectrumChannel");
+  h.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel");
+  h.AddSpectrumPropagationLoss ("ns3::FriisSpectrumPropagationLossModel");
+  return h;
+}
+
+void
+SpectrumChannelHelper::SetChannel (std::string type,
+                                   std::string n0, const AttributeValue &v0,
+                                   std::string n1, const AttributeValue &v1,
+                                   std::string n2, const AttributeValue &v2,
+                                   std::string n3, const AttributeValue &v3,
+                                   std::string n4, const AttributeValue &v4,
+                                   std::string n5, const AttributeValue &v5,
+                                   std::string n6, const AttributeValue &v6,
+                                   std::string n7, const AttributeValue &v7)
+{
+  ObjectFactory factory;
+  m_channel.SetTypeId (type);
+  m_channel.Set (n0, v0);
+  m_channel.Set (n1, v1);
+  m_channel.Set (n2, v2);
+  m_channel.Set (n3, v3);
+  m_channel.Set (n4, v4);
+  m_channel.Set (n5, v5);
+  m_channel.Set (n6, v6);
+  m_channel.Set (n7, v7);
+}
+
+
+void
+SpectrumChannelHelper::AddSpectrumPropagationLoss (std::string type,
+                                                   std::string n0, const AttributeValue &v0,
+                                                   std::string n1, const AttributeValue &v1,
+                                                   std::string n2, const AttributeValue &v2,
+                                                   std::string n3, const AttributeValue &v3,
+                                                   std::string n4, const AttributeValue &v4,
+                                                   std::string n5, const AttributeValue &v5,
+                                                   std::string n6, const AttributeValue &v6,
+                                                   std::string n7, const AttributeValue &v7)
+{
+  ObjectFactory factory;
+  factory.SetTypeId (type);
+  factory.Set (n0, v0);
+  factory.Set (n1, v1);
+  factory.Set (n2, v2);
+  factory.Set (n3, v3);
+  factory.Set (n4, v4);
+  factory.Set (n5, v5);
+  factory.Set (n6, v6);
+  factory.Set (n7, v7);
+  m_spectrumPropagationLoss.push_back (factory);
+}
+
+void
+SpectrumChannelHelper::SetPropagationDelay (std::string type,
+                                            std::string n0, const AttributeValue &v0,
+                                            std::string n1, const AttributeValue &v1,
+                                            std::string n2, const AttributeValue &v2,
+                                            std::string n3, const AttributeValue &v3,
+                                            std::string n4, const AttributeValue &v4,
+                                            std::string n5, const AttributeValue &v5,
+                                            std::string n6, const AttributeValue &v6,
+                                            std::string n7, const AttributeValue &v7)
+{
+  ObjectFactory factory;
+  factory.SetTypeId (type);
+  factory.Set (n0, v0);
+  factory.Set (n1, v1);
+  factory.Set (n2, v2);
+  factory.Set (n3, v3);
+  factory.Set (n4, v4);
+  factory.Set (n5, v5);
+  factory.Set (n6, v6);
+  factory.Set (n7, v7);
+  m_propagationDelay = factory;
+}
+
+Ptr<SpectrumChannel>
+SpectrumChannelHelper::Create (void) const
+{
+  Ptr<SpectrumChannel> channel = (m_channel.Create ())->GetObject<SpectrumChannel> ();
+  Ptr<SpectrumPropagationLossModel> prev = 0;
+  for (std::vector<ObjectFactory>::const_iterator i = m_spectrumPropagationLoss.begin (); i != m_spectrumPropagationLoss.end (); ++i)
+    {
+      Ptr<SpectrumPropagationLossModel> cur = (*i).Create<SpectrumPropagationLossModel> ();
+      if (prev == 0)
+        {
+          channel->AddSpectrumPropagationLossModel (cur);
+        }
+      else
+        {
+          prev->SetNext (cur);
+        }
+      prev = cur;
+    }
+  Ptr<PropagationDelayModel> delay = m_propagationDelay.Create<PropagationDelayModel> ();
+  channel->SetPropagationDelayModel (delay);
+  return channel;
+}
+
+
+
+
+
+
+void
+SpectrumPhyHelper::SetPhy (std::string type,
+                           std::string n0, const AttributeValue &v0,
+                           std::string n1, const AttributeValue &v1,
+                           std::string n2, const AttributeValue &v2,
+                           std::string n3, const AttributeValue &v3,
+                           std::string n4, const AttributeValue &v4,
+                           std::string n5, const AttributeValue &v5,
+                           std::string n6, const AttributeValue &v6,
+                           std::string n7, const AttributeValue &v7)
+{
+  m_phy.SetTypeId (type);
+  m_phy.Set (n0, v0);
+  m_phy.Set (n1, v1);
+  m_phy.Set (n2, v2);
+  m_phy.Set (n3, v3);
+  m_phy.Set (n4, v4);
+  m_phy.Set (n5, v5);
+  m_phy.Set (n6, v6);
+  m_phy.Set (n7, v7);
+}
+
+
+
+void
+SpectrumPhyHelper::SetChannel (Ptr<SpectrumChannel> channel)
+{
+  m_channel = channel;
+}
+
+void
+SpectrumPhyHelper::SetChannel (std::string channelName)
+{
+  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
+  m_channel = channel;
+}
+
+void
+SpectrumPhyHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
+{
+  m_phy.Set (name, v);
+}
+
+
+Ptr<SpectrumPhy>
+SpectrumPhyHelper::Create (Ptr<Node> node, Ptr<NetDevice> device) const
+{
+  NS_ASSERT (m_channel);
+  Ptr<SpectrumPhy> phy = (m_phy.Create ())->GetObject<SpectrumPhy> ();
+  phy->SetChannel (m_channel);
+  phy->SetMobility (node);
+  phy->SetDevice (device);
+  return phy;
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/spectrum-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,224 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_HELPER_H
+#define SPECTRUM_HELPER_H
+
+#include <string>
+#include <ns3/attribute.h>
+#include <ns3/object-factory.h>
+#include <ns3/node-container.h>
+#include <ns3/net-device-container.h>
+
+namespace ns3 {
+
+class SpectrumPhy;
+class SpectrumChannel;
+class Node;
+class NetDevice;
+
+
+class SpectrumChannelHelper
+{
+public:
+  static SpectrumChannelHelper Default ();
+
+  /**
+   * \param type the type of the SpectrumChannel to use
+   * \param n0 the name of the attribute to set
+   * \param v0 the value of the attribute to set
+   * \param n1 the name of the attribute to set
+   * \param v1 the value of the attribute to set
+   * \param n2 the name of the attribute to set
+   * \param v2 the value of the attribute to set
+   * \param n3 the name of the attribute to set
+   * \param v3 the value of the attribute to set
+   * \param n4 the name of the attribute to set
+   * \param v4 the value of the attribute to set
+   * \param n5 the name of the attribute to set
+   * \param v5 the value of the attribute to set
+   * \param n6 the name of the attribute to set
+   * \param v6 the value of the attribute to set
+   * \param n7 the name of the attribute to set
+   * \param v7 the value of the attribute to set
+   */
+  void SetChannel (std::string type,
+                   std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
+                   std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
+                   std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
+                   std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
+                   std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
+                   std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
+                   std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
+                   std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
+
+  /**
+   * \param name the name of the model to set
+   * \param n0 the name of the attribute to set
+   * \param v0 the value of the attribute to set
+   * \param n1 the name of the attribute to set
+   * \param v1 the value of the attribute to set
+   * \param n2 the name of the attribute to set
+   * \param v2 the value of the attribute to set
+   * \param n3 the name of the attribute to set
+   * \param v3 the value of the attribute to set
+   * \param n4 the name of the attribute to set
+   * \param v4 the value of the attribute to set
+   * \param n5 the name of the attribute to set
+   * \param v5 the value of the attribute to set
+   * \param n6 the name of the attribute to set
+   * \param v6 the value of the attribute to set
+   * \param n7 the name of the attribute to set
+   * \param v7 the value of the attribute to set
+   *
+   * Add a new spectrum propagation loss to this channel helper.
+   */
+  void AddSpectrumPropagationLoss (std::string name,
+                                   std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
+                                   std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
+                                   std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
+                                   std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
+                                   std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
+                                   std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
+                                   std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
+                                   std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
+  /**
+   * \param name the name of the model to set
+   * \param n0 the name of the attribute to set
+   * \param v0 the value of the attribute to set
+   * \param n1 the name of the attribute to set
+   * \param v1 the value of the attribute to set
+   * \param n2 the name of the attribute to set
+   * \param v2 the value of the attribute to set
+   * \param n3 the name of the attribute to set
+   * \param v3 the value of the attribute to set
+   * \param n4 the name of the attribute to set
+   * \param v4 the value of the attribute to set
+   * \param n5 the name of the attribute to set
+   * \param v5 the value of the attribute to set
+   * \param n6 the name of the attribute to set
+   * \param v6 the value of the attribute to set
+   * \param n7 the name of the attribute to set
+   * \param v7 the value of the attribute to set
+   *
+   * Configure a propagation delay for this channel.
+   */
+  void SetPropagationDelay (std::string name,
+                            std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
+                            std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
+                            std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
+                            std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
+                            std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
+                            std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
+                            std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
+                            std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
+
+  /**
+   * \returns a new channel
+   *
+   * Create a channel based on the configuration parameters set previously.
+   */
+  Ptr<SpectrumChannel> Create (void) const;
+
+private:
+  std::vector<ObjectFactory> m_spectrumPropagationLoss;
+  ObjectFactory m_propagationDelay;
+  ObjectFactory m_channel;
+};
+
+
+
+/**
+ * create and configure several SpectrumPhy instances and connect them to a channel.
+ */
+class SpectrumPhyHelper
+{
+public:
+  /**
+   * \param name the type of SpectrumPhy to use
+   * \param n0 the name of the attribute to set
+   * \param v0 the value of the attribute to set
+   * \param n1 the name of the attribute to set
+   * \param v1 the value of the attribute to set
+   * \param n2 the name of the attribute to set
+   * \param v2 the value of the attribute to set
+   * \param n3 the name of the attribute to set
+   * \param v3 the value of the attribute to set
+   * \param n4 the name of the attribute to set
+   * \param v4 the value of the attribute to set
+   * \param n5 the name of the attribute to set
+   * \param v5 the value of the attribute to set
+   * \param n6 the name of the attribute to set
+   * \param v6 the value of the attribute to set
+   * \param n7 the name of the attribute to set
+   * \param v7 the value of the attribute to set
+   */
+  void SetPhy (std::string name,
+               std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (),
+               std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (),
+               std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (),
+               std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (),
+               std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (),
+               std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (),
+               std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (),
+               std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ());
+
+  /**
+   * set the channel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channel
+   */
+  void SetChannel (Ptr<SpectrumChannel> channel);
+
+  /**
+   * set the channel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channelName
+   */
+  void SetChannel (std::string channelName);
+
+  /**
+   * \param name the name of the attribute to set
+   * \param v the value of the attribute
+   *
+   * Set an attribute of the SpectrumPhy instances to be created
+   */
+  void SetPhyAttribute (std::string name, const AttributeValue &v);
+
+  /**
+   *
+   * @param node
+   * @param device
+   *
+   * @return a  newly created SpectrumPhy instance
+   */
+  Ptr<SpectrumPhy> Create (Ptr<Node> node, Ptr<NetDevice> device) const;
+
+
+
+private:
+  ObjectFactory m_phy;
+  Ptr<SpectrumChannel> m_channel;
+};
+
+
+} // namespace ns3
+
+#endif /* SPECTRUM_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/waveform-generator-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,134 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+#include "ns3/propagation-delay-model.h"
+#include "ns3/spectrum-propagation-loss-model.h"
+#include "ns3/mobility-model.h"
+#include "ns3/log.h"
+#include "ns3/config.h"
+#include "ns3/simulator.h"
+#include "ns3/names.h"
+#include "ns3/spectrum-channel.h"
+#include "ns3/waveform-generator.h"
+#include "ns3/non-communicating-net-device.h"
+#include "waveform-generator-helper.h"
+
+
+
+
+NS_LOG_COMPONENT_DEFINE ("WaveformGeneratorHelper");
+
+namespace ns3 {
+
+
+WaveformGeneratorHelper::WaveformGeneratorHelper ()
+{
+  m_phy.SetTypeId ("ns3::WaveformGenerator");
+  m_device.SetTypeId ("ns3::NonCommunicatingNetDevice");
+}
+
+WaveformGeneratorHelper::~WaveformGeneratorHelper ()
+{
+}
+
+void
+WaveformGeneratorHelper::SetChannel (Ptr<SpectrumChannel> channel)
+{
+  m_channel = channel;
+}
+
+void
+WaveformGeneratorHelper::SetChannel (std::string channelName)
+{
+  Ptr<SpectrumChannel> channel = Names::Find<SpectrumChannel> (channelName);
+  m_channel = channel;
+}
+
+void
+WaveformGeneratorHelper::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
+{
+  NS_LOG_FUNCTION (this << txPsd);
+  m_txPsd = txPsd;
+}
+
+
+void
+WaveformGeneratorHelper::SetPhyAttribute (std::string name, const AttributeValue &v)
+{
+  m_phy.Set (name, v);
+}
+
+
+void
+WaveformGeneratorHelper::SetDeviceAttribute (std::string name, const AttributeValue &v)
+{
+  m_device.Set (name, v);
+}
+
+
+NetDeviceContainer
+WaveformGeneratorHelper::Install (NodeContainer c) const
+{
+  NetDeviceContainer devices;
+  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
+    {
+      Ptr<Node> node = *i;
+
+      Ptr<NonCommunicatingNetDevice> dev = m_device.Create ()->GetObject<NonCommunicatingNetDevice> ();
+     
+      Ptr<WaveformGenerator>  phy = m_phy.Create ()->GetObject<WaveformGenerator> ();
+      NS_ASSERT (phy);
+
+      dev->SetPhy (phy);
+
+      NS_ASSERT (node);
+      phy->SetMobility (node);
+
+      NS_ASSERT (dev);
+      phy->SetDevice (dev);
+
+      NS_ASSERT_MSG (m_txPsd, "you forgot to call WaveformGeneratorHelper::SetTxPowerSpectralDensity ()");
+      phy->SetTxPowerSpectralDensity (m_txPsd);
+
+      NS_ASSERT_MSG (m_channel, "you forgot to call WaveformGeneratorHelper::SetChannel ()");
+      phy->SetChannel (m_channel);
+      dev->SetChannel (m_channel);
+
+
+      node->AddDevice (dev);
+      devices.Add (dev);
+    }
+  return devices;
+}
+
+NetDeviceContainer
+WaveformGeneratorHelper::Install (Ptr<Node> node) const
+{
+  return Install (NodeContainer (node));
+}
+
+NetDeviceContainer
+WaveformGeneratorHelper::Install (std::string nodeName) const
+{
+  Ptr<Node> node = Names::Find<Node> (nodeName);
+  return Install (node);
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/helper/waveform-generator-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,113 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef WAVEFORM_GENERATOR_HELPER_H
+#define WAVEFORM_GENERATOR_HELPER_H
+
+
+#include <string>
+#include <ns3/attribute.h>
+#include <ns3/object-factory.h>
+#include <ns3/node-container.h>
+#include <ns3/net-device-container.h>
+#include <ns3/queue.h>
+
+
+namespace ns3 {
+
+
+class SpectrumValue;
+class SpectrumChannel;
+
+
+class WaveformGeneratorHelper
+{
+public:
+  WaveformGeneratorHelper ();
+  ~WaveformGeneratorHelper ();
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channel
+   */
+  void SetChannel (Ptr<SpectrumChannel> channel);
+
+  /**
+   * set the SpectrumChannel that will be used by SpectrumPhy instances created by this helper
+   *
+   * @param channelName
+   */
+  void SetChannel (std::string channelName);
+
+
+  /**
+   *
+   * @param txPsd the Power Spectral Density to be used for transmission by all created PHY instances
+   */
+  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
+
+
+  /**
+   * @param name the name of the attribute to set
+   * @param v the value of the attribute
+   *
+   * Set these attributes on each HdOfdmSpectrumPhy instance to be created
+   */
+  void SetPhyAttribute (std::string name, const AttributeValue &v);
+
+  /**
+   * @param n1 the name of the attribute to set
+   * @param v1 the value of the attribute to set
+   *
+   * Set these attributes on each AlohaNoackNetDevice created
+   */
+  void SetDeviceAttribute (std::string n1, const AttributeValue &v1);
+
+
+  /**
+    * @param c the set of nodes on which a device must be created
+    * @return a device container which contains all the devices created by this method.
+    */
+  NetDeviceContainer Install (NodeContainer c) const;
+  /**
+   * @param node the node on which a device must be created
+   * \returns a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (Ptr<Node> node) const;
+  /**
+   * @param nodeName the name of node on which a device must be created
+   * @return a device container which contains all the devices created by this method.
+   */
+  NetDeviceContainer Install (std::string nodeName) const;
+
+
+protected:
+  ObjectFactory m_phy;
+  ObjectFactory m_device;
+  Ptr<SpectrumChannel> m_channel;
+  Ptr<SpectrumValue> m_txPsd;
+};
+
+
+} // namespace ns3
+
+
+#endif /* WAVEFORM_GENERATOR_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/aloha-noack-mac-header.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,110 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/log.h>
+#include "aloha-noack-mac-header.h"
+
+
+NS_LOG_COMPONENT_DEFINE ("AlohaNoackMacHeader");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (AlohaNoackMacHeader);
+
+TypeId
+AlohaNoackMacHeader::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::AlohaNoackMacHeader")
+    .SetParent<Header> ()
+    .AddConstructor<AlohaNoackMacHeader> ()
+  ;
+  return tid;
+}
+
+TypeId
+AlohaNoackMacHeader::GetInstanceTypeId (void) const
+{
+  return GetTypeId ();
+}
+
+
+
+uint32_t
+AlohaNoackMacHeader::GetSerializedSize (void) const
+{
+  return 12;
+}
+
+
+
+void
+AlohaNoackMacHeader::Serialize (Buffer::Iterator start) const
+{
+  WriteTo (start, m_destination);
+  WriteTo (start, m_source);
+}
+
+uint32_t
+AlohaNoackMacHeader::Deserialize (Buffer::Iterator start)
+{
+  ReadFrom (start, m_destination);
+  ReadFrom (start, m_source);
+  return GetSerializedSize ();
+}
+
+
+void
+AlohaNoackMacHeader::Print (std::ostream &os) const
+{
+  os << "src="  << m_source
+     << "dst="  << m_destination;
+}
+
+
+void
+AlohaNoackMacHeader::SetSource (Mac48Address source)
+{
+  m_source = source;
+}
+
+Mac48Address
+AlohaNoackMacHeader::GetSource () const
+{
+  return m_source;
+}
+
+void
+AlohaNoackMacHeader::SetDestination (Mac48Address dst)
+{
+  m_destination = dst;
+}
+
+Mac48Address
+AlohaNoackMacHeader::GetDestination () const
+{
+  return m_destination;
+}
+
+
+
+
+} // namespace ns3
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/aloha-noack-mac-header.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,55 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009, 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#ifndef ALOHA_NOACK_MAC_HEADER_H
+#define ALOHA_NOACK_MAC_HEADER_H
+
+#include <ns3/header.h>
+#include <ns3/mac48-address.h>
+#include <ns3/address-utils.h>
+
+namespace ns3 {
+
+class AlohaNoackMacHeader : public Header
+{
+public:
+  static TypeId GetTypeId (void);
+  virtual TypeId GetInstanceTypeId (void) const;
+  virtual uint32_t GetSerializedSize (void) const;
+  virtual void Serialize (Buffer::Iterator start) const;
+  virtual uint32_t Deserialize (Buffer::Iterator start);
+  virtual void Print (std::ostream &os) const;
+
+  void SetSource (Mac48Address source);
+  void SetDestination (Mac48Address destination);
+  Mac48Address GetSource () const;
+  Mac48Address GetDestination () const;
+
+private:
+  Mac48Address m_source;
+  Mac48Address m_destination;
+};
+
+
+
+} // namespace ns3
+
+#endif /* ALOHA_NOACK_MAC_HEADER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/aloha-noack-net-device.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,495 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "ns3/log.h"
+#include "ns3/queue.h"
+#include "ns3/simulator.h"
+#include "ns3/enum.h"
+#include "ns3/boolean.h"
+#include "ns3/uinteger.h"
+#include "ns3/pointer.h"
+#include "ns3/channel.h"
+#include "ns3/trace-source-accessor.h"
+#include "aloha-noack-mac-header.h"
+#include "aloha-noack-net-device.h"
+#include "ns3/llc-snap-header.h"
+
+NS_LOG_COMPONENT_DEFINE ("AlohaNoackNetDevice");
+
+
+namespace ns3 {
+
+
+std::ostream& operator<< (std::ostream& os, AlohaNoackNetDevice::State state)
+{
+  switch (state)
+    {
+    case AlohaNoackNetDevice::IDLE:
+      os << "IDLE" ;
+      break;
+    case AlohaNoackNetDevice::TX:
+      os << "TX" ;
+      break;
+    case AlohaNoackNetDevice::RX:
+      os << "RX" ;
+      break;
+    }
+  return os;
+}
+
+
+NS_OBJECT_ENSURE_REGISTERED (AlohaNoackNetDevice);
+
+TypeId
+AlohaNoackNetDevice::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::AlohaNoackNetDevice")
+    .SetParent<NetDevice> ()
+    .AddConstructor<AlohaNoackNetDevice> ()
+    .AddAttribute ("Address",
+                   "The MAC address of this device.",
+                   Mac48AddressValue (Mac48Address ("12:34:56:78:90:12")),
+                   MakeMac48AddressAccessor (&AlohaNoackNetDevice::m_address),
+                   MakeMac48AddressChecker ())
+    .AddAttribute ("Queue",
+                   "packets being transmitted get queued here",
+                   PointerValue (),
+                   MakePointerAccessor (&AlohaNoackNetDevice::m_queue),
+                   MakePointerChecker<Queue> ())
+    .AddAttribute ("Mtu", "The Maximum Transmission Unit",
+                   UintegerValue (1500),
+                   MakeUintegerAccessor (&AlohaNoackNetDevice::SetMtu,
+                                         &AlohaNoackNetDevice::GetMtu),
+                   MakeUintegerChecker<uint16_t> (1,65535))
+    .AddAttribute ("Phy", "The PHY layer attached to this device.",
+                   PointerValue (),
+                   MakePointerAccessor (&AlohaNoackNetDevice::GetPhy,
+                                        &AlohaNoackNetDevice::SetPhy),
+                   MakePointerChecker<Object> ())
+    .AddTraceSource ("MacTx",
+                     "Trace source indicating a packet has arrived for transmission by this device",
+                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macTxTrace))
+    .AddTraceSource ("MacTxDrop",
+                     "Trace source indicating a packet has been dropped by the device before transmission",
+                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macTxDropTrace))
+    .AddTraceSource ("MacPromiscRx",
+                     "A packet has been received by this device, has been passed up from the physical layer "
+                     "and is being forwarded up the local protocol stack.  This is a promiscuous trace,",
+                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macPromiscRxTrace))
+    .AddTraceSource ("MacRx",
+                     "A packet has been received by this device, has been passed up from the physical layer "
+                     "and is being forwarded up the local protocol stack.  This is a non-promiscuous trace,",
+                     MakeTraceSourceAccessor (&AlohaNoackNetDevice::m_macRxTrace))
+  ;
+  return tid;
+}
+
+AlohaNoackNetDevice::AlohaNoackNetDevice ()
+  : m_state (IDLE)
+{
+  NS_LOG_FUNCTION (this);
+}
+  
+AlohaNoackNetDevice::~AlohaNoackNetDevice ()
+{
+  NS_LOG_FUNCTION (this);
+  m_queue = 0;
+}
+
+void
+AlohaNoackNetDevice::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_queue = 0;
+  m_node = 0;
+  m_channel = 0;
+  m_currentPkt = 0;
+  m_phy = 0;
+  m_phyMacTxStartCallback = MakeNullCallback< bool, Ptr<Packet> > ();
+  NetDevice::DoDispose ();
+}
+
+
+void
+AlohaNoackNetDevice::SetIfIndex (const uint32_t index)
+{
+  NS_LOG_FUNCTION (index);
+  m_ifIndex = index;
+}
+
+uint32_t
+AlohaNoackNetDevice::GetIfIndex (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_ifIndex;
+}
+
+bool
+AlohaNoackNetDevice::SetMtu (uint16_t mtu)
+{
+  NS_LOG_FUNCTION (mtu);
+  m_mtu = mtu;
+  return true;
+}
+
+uint16_t
+AlohaNoackNetDevice::GetMtu (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_mtu;
+}
+
+
+void
+AlohaNoackNetDevice::SetQueue (Ptr<Queue> q)
+{
+  NS_LOG_FUNCTION (q);
+  m_queue = q;
+}
+
+
+void
+AlohaNoackNetDevice::SetAddress (Address address)
+{
+  NS_LOG_FUNCTION (this);
+  m_address = Mac48Address::ConvertFrom (address);
+}
+
+Address
+AlohaNoackNetDevice::GetAddress (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_address;
+}
+
+bool
+AlohaNoackNetDevice::IsBroadcast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return true;
+}
+
+Address
+AlohaNoackNetDevice::GetBroadcast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return Mac48Address ("ff:ff:ff:ff:ff:ff");
+}
+
+bool
+AlohaNoackNetDevice::IsMulticast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return true;
+}
+
+Address
+AlohaNoackNetDevice::GetMulticast (Ipv4Address addr) const
+{
+  NS_LOG_FUNCTION (addr);
+  Mac48Address ad = Mac48Address::GetMulticast (addr);
+  return ad;
+}
+
+
+Address AlohaNoackNetDevice::GetMulticast (Ipv6Address addr) const
+{
+  NS_LOG_FUNCTION (addr);
+  Mac48Address ad = Mac48Address::GetMulticast (addr);
+  return ad;
+}
+
+
+bool
+AlohaNoackNetDevice::IsPointToPoint (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+bool
+AlohaNoackNetDevice::IsBridge (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+
+Ptr<Node>
+AlohaNoackNetDevice::GetNode (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_node;
+}
+
+void
+AlohaNoackNetDevice::SetNode (Ptr<Node> node)
+{
+  NS_LOG_FUNCTION (node);
+
+  m_node = node;
+}
+
+void
+AlohaNoackNetDevice::SetPhy (Ptr<Object> phy)
+{
+  NS_LOG_FUNCTION (this << phy);
+  m_phy = phy;
+}
+
+
+Ptr<Object>
+AlohaNoackNetDevice::GetPhy () const
+{
+  NS_LOG_FUNCTION (this);
+  return m_phy;
+}
+
+
+void
+AlohaNoackNetDevice::SetChannel (Ptr<Channel> c)
+{
+  NS_LOG_FUNCTION (this << c);
+  m_channel = c;
+}
+
+
+Ptr<Channel>
+AlohaNoackNetDevice::GetChannel (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_channel;
+}
+
+
+bool
+AlohaNoackNetDevice::NeedsArp (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return true;
+}
+
+bool
+AlohaNoackNetDevice::IsLinkUp (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_linkUp;
+}
+
+void
+AlohaNoackNetDevice::AddLinkChangeCallback (Callback<void> callback)
+{
+  NS_LOG_FUNCTION (&callback);
+  m_linkChangeCallbacks.ConnectWithoutContext (callback);
+}
+
+void
+AlohaNoackNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb)
+{
+  NS_LOG_FUNCTION (&cb);
+  m_rxCallback = cb;
+}
+
+void
+AlohaNoackNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb)
+{
+  NS_LOG_FUNCTION (&cb);
+  m_promiscRxCallback = cb;
+}
+
+bool
+AlohaNoackNetDevice::SupportsSendFrom () const
+{
+  NS_LOG_FUNCTION (this);
+  return true;
+}
+
+
+bool
+AlohaNoackNetDevice::Send (Ptr<Packet> packet,const Address& dest, uint16_t protocolNumber)
+{
+  NS_LOG_FUNCTION (packet << dest << protocolNumber);
+  return SendFrom (packet, m_address, dest, protocolNumber);
+}
+
+bool
+AlohaNoackNetDevice::SendFrom (Ptr<Packet> packet, const Address& src, const Address& dest, uint16_t protocolNumber)
+{
+  NS_LOG_FUNCTION (packet << src << dest << protocolNumber);
+
+  LlcSnapHeader llc;
+  llc.SetType (protocolNumber);
+  packet->AddHeader (llc);
+
+  AlohaNoackMacHeader header;
+  header.SetSource (Mac48Address::ConvertFrom (src));
+  header.SetDestination (Mac48Address::ConvertFrom (dest));
+  packet->AddHeader (header);
+
+  m_macTxTrace (packet);
+
+
+
+  //
+  // If the device is idle, transmission starts immediately. Otherwise,
+  // the transmission will be started by NotifyTransmissionEnd
+  //
+  NS_LOG_LOGIC (this << " state=" << m_state);
+  if (m_state == IDLE)
+    {
+      if (m_queue->IsEmpty ())
+        {
+          NS_LOG_LOGIC ("new packet is head of queue, starting TX immediately");
+          m_currentPkt = packet;
+          StartTransmission ();
+        }
+      else
+        {
+          NS_LOG_LOGIC ("enqueueing new packet");
+          if (m_queue->Enqueue (packet) == false)
+            {
+              m_macTxDropTrace (packet);
+              return false;
+            }
+          NS_LOG_LOGIC ("transmitting head-of-queue packet");
+          m_currentPkt = m_queue->Dequeue ();
+          NS_ASSERT (m_currentPkt != 0);
+          StartTransmission ();
+        }
+    }
+  else
+    {
+      NS_LOG_LOGIC ("deferring TX, enqueueing new packet");
+      NS_ASSERT (m_queue);
+      if (m_queue->Enqueue (packet) == false)
+        {
+          m_macTxDropTrace (packet);
+          return false;
+        }
+    }
+  return true;
+}
+
+void
+AlohaNoackNetDevice::SetPhyMacTxStartCallback (PhyMacTxStartCallback c)
+{
+  NS_LOG_FUNCTION (this);
+  m_phyMacTxStartCallback = c;
+}
+
+void
+AlohaNoackNetDevice::StartTransmission ()
+{
+  NS_LOG_FUNCTION (this);
+
+  NS_ASSERT (m_currentPkt != 0);
+  NS_ASSERT (m_state == IDLE);
+
+  if (m_phyMacTxStartCallback (m_currentPkt))
+    {
+      NS_LOG_WARN ("PHY refused to start TX");
+    }
+  else
+    {
+      m_state = TX;
+    }
+}
+
+
+
+void
+AlohaNoackNetDevice::NotifyTransmissionEnd (Ptr<const Packet>)
+{
+  NS_LOG_FUNCTION (this);
+  NS_ASSERT_MSG (m_state == TX, "TX end notified while state != TX");
+  m_state = IDLE;
+  NS_ASSERT (m_queue);
+  if (m_queue->IsEmpty () == false)
+    {
+      m_currentPkt = m_queue->Dequeue ();
+      NS_ASSERT (m_currentPkt);
+      Simulator::ScheduleNow (&AlohaNoackNetDevice::StartTransmission, this);
+    }
+}
+
+
+void
+AlohaNoackNetDevice::NotifyReceptionStart ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+
+
+void
+AlohaNoackNetDevice::NotifyReceptionEndError ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+
+
+
+
+void
+AlohaNoackNetDevice::NotifyReceptionEndOk (Ptr<Packet> packet)
+{
+  NS_LOG_FUNCTION (this << packet);
+  AlohaNoackMacHeader header;
+  packet->RemoveHeader (header);
+  NS_LOG_LOGIC ("packet " << header.GetSource () << " --> " << header.GetDestination () << " (here: " << m_address << ")");
+
+  LlcSnapHeader llc;
+  packet->RemoveHeader (llc);
+
+  PacketType packetType;
+  if (header.GetDestination ().IsBroadcast ())
+    {
+      packetType = PACKET_BROADCAST;
+    }
+  else if (header.GetDestination ().IsGroup ())
+    {
+      packetType = PACKET_MULTICAST;
+    }
+  else if (header.GetDestination () == m_address)
+    {
+      packetType = PACKET_HOST;
+    }
+  else
+    {
+      packetType = PACKET_OTHERHOST;
+    }
+
+  NS_LOG_LOGIC ("packet type = " << packetType);
+
+  if (!m_promiscRxCallback.IsNull ())
+    {
+      m_promiscRxCallback (this, packet->Copy (), llc.GetType (), header.GetSource (), header.GetDestination (), packetType);
+    }
+
+  if (packetType != PACKET_OTHERHOST)
+    {
+      m_rxCallback (this, packet, llc.GetType (), header.GetSource () );
+    }
+}
+
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/aloha-noack-net-device.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,227 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef ALOHA_NOACK_NET_DEVICE_H
+#define ALOHA_NOACK_NET_DEVICE_H
+
+#include <string.h>
+#include <ns3/node.h>
+#include <ns3/address.h>
+#include <ns3/net-device.h>
+#include <ns3/callback.h>
+#include <ns3/packet.h>
+#include <ns3/traced-callback.h>
+#include <ns3/nstime.h>
+#include <ns3/ptr.h>
+#include <ns3/mac48-address.h>
+#include <ns3/phy-mac.h>
+
+namespace ns3 {
+
+
+class SpectrumChannel;
+class Channel;
+class SpectrumErrorModel;
+class Queue;
+
+
+
+/**
+ * This devices implements the following features:
+ *  - layer 3 protocol multiplexing
+ *  - MAC addressing
+ *  - Aloha MAC:
+ *    + packets transmitted as soon as possible
+ *    + a new packet is queued if previous one is still being transmitted
+ *    + no acknowledgements, hence no retransmissions
+ *  - can support any PHY layer compatible with the API defined in phy-mac.h
+ *
+ */
+class AlohaNoackNetDevice : public NetDevice
+{
+public:
+  enum State {
+    IDLE, TX, RX
+  };
+
+  static TypeId GetTypeId (void);
+
+  AlohaNoackNetDevice ();
+  virtual ~AlohaNoackNetDevice ();
+
+
+  /**
+   * set the queue which is going to be used by this device
+   *
+   * @param queue
+   */
+  virtual void SetQueue (Ptr<Queue> queue);
+
+
+  /**
+   * Notify the MAC that the PHY has finished a previously started transmission
+   *
+   */
+  void NotifyTransmissionEnd (Ptr<const Packet>);
+
+  /**
+   * Notify the MAC that the PHY has started a reception
+   *
+   */
+  void NotifyReceptionStart ();
+
+
+  /**
+   * Notify the MAC that the PHY finished a reception with an error
+   *
+   */
+  void NotifyReceptionEndError ();
+
+  /**
+   * Notify the MAC that the PHY finished a reception successfully
+   *
+   * @param p the received packet
+   */
+  void NotifyReceptionEndOk (Ptr<Packet> p);
+
+
+  /**
+   * This class doesn't talk directly with the underlying channel (a
+   * dedicated PHY class is expected to do it), however the NetDevice
+   * specification features a GetChannel() method. This method here
+   * is therefore provide to allow AlohaNoackNetDevice::GetChannel() to have
+   * something meaningful to return.
+   *
+   * @param c the underlying channel
+   */
+  void SetChannel (Ptr<Channel> c);
+
+
+  /**
+   * set the callback used to instruct the lower layer to start a TX
+   *
+   * @param c
+   */
+  void SetPhyMacTxStartCallback (PhyMacTxStartCallback c);
+
+
+
+  /**
+   * Set the Phy object which is attached to this device.
+   * This object is needed so that we can set/get attributes and
+   * connect to trace sources of the PHY from the net device.
+   *
+   * @param phy the Phy object attached to the device.  Note that the
+   * API between the PHY and the above (this NetDevice which also
+   * implements the MAC) is implemented entirely by
+   * callbacks, so we do not require that the PHY inherits by any
+   * specific class.
+   */
+  void SetPhy (Ptr<Object> phy);
+
+  /**
+   * @return a reference to the PHY object embedded in this NetDevice.
+   */
+  Ptr<Object> GetPhy () const;
+
+
+
+  // inherited from NetDevice
+  virtual void SetIfIndex (const uint32_t index);
+  virtual uint32_t GetIfIndex (void) const;
+  virtual Ptr<Channel> GetChannel (void) const;
+  virtual bool SetMtu (const uint16_t mtu);
+  virtual uint16_t GetMtu (void) const;
+  virtual void SetAddress (Address address);
+  virtual Address GetAddress (void) const;
+  virtual bool IsLinkUp (void) const;
+  virtual void AddLinkChangeCallback (Callback<void> callback);
+  virtual bool IsBroadcast (void) const;
+  virtual Address GetBroadcast (void) const;
+  virtual bool IsMulticast (void) const;
+  virtual bool IsPointToPoint (void) const;
+  virtual bool IsBridge (void) const;
+  virtual bool Send (Ptr<Packet> packet, const Address& dest,
+                     uint16_t protocolNumber);
+  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest,
+                         uint16_t protocolNumber);
+  virtual Ptr<Node> GetNode (void) const;
+  virtual void SetNode (Ptr<Node> node);
+  virtual bool NeedsArp (void) const;
+  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
+  virtual Address GetMulticast (Ipv4Address addr) const;
+  virtual Address GetMulticast (Ipv6Address addr) const;
+  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
+  virtual bool SupportsSendFrom (void) const;
+
+
+
+
+
+private:
+  void NotifyGuardIntervalEnd ();
+  virtual void DoDispose (void);
+
+  /**
+   * start the transmission of a packet by contacting the PHY layer
+   *
+   */
+  void StartTransmission ();
+
+
+  Ptr<Queue> m_queue;
+
+  TracedCallback<Ptr<const Packet> > m_macTxTrace;
+  TracedCallback<Ptr<const Packet> > m_macTxDropTrace;
+  TracedCallback<Ptr<const Packet> > m_macPromiscRxTrace;
+  TracedCallback<Ptr<const Packet> > m_macRxTrace;
+
+  Ptr<Node>    m_node;
+  Ptr<Channel> m_channel;
+
+  Mac48Address m_address;
+
+  NetDevice::ReceiveCallback m_rxCallback;
+  NetDevice::PromiscReceiveCallback m_promiscRxCallback;
+
+  PhyMacTxStartCallback m_phyMacTxStartCallback;
+
+  /**
+   * List of callbacks to fire if the link changes state (up or down).
+   */
+  TracedCallback<> m_linkChangeCallbacks;
+
+
+  uint32_t m_ifIndex;
+  mutable uint32_t m_mtu;
+  bool m_linkUp;
+
+
+  State m_state;
+
+  Ptr<Packet> m_currentPkt;
+
+  Ptr<Object> m_phy;
+};
+
+
+} // namespace ns3
+
+#endif // ALOHA_NOACK_NET_DEVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/friis-spectrum-propagation-loss.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,108 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include <ns3/mobility-model.h>
+#include <ns3/friis-spectrum-propagation-loss.h>
+#include <math.h>
+
+
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (FriisSpectrumPropagationLossModel);
+
+
+FriisSpectrumPropagationLossModel::FriisSpectrumPropagationLossModel ()
+{
+}
+
+FriisSpectrumPropagationLossModel::~FriisSpectrumPropagationLossModel ()
+{
+}
+
+
+TypeId
+FriisSpectrumPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::FriisSpectrumPropagationLossModel")
+    .SetParent<SpectrumPropagationLossModel> ()
+    .AddConstructor<FriisSpectrumPropagationLossModel> ()
+  ;
+  return tid;
+}
+
+
+Ptr<SpectrumValue>
+FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
+                                                                 Ptr<const MobilityModel> a,
+                                                                 Ptr<const MobilityModel> b) const
+{
+  Ptr<SpectrumValue> rxPsd = Copy<SpectrumValue> (txPsd);
+  Values::iterator vit = rxPsd->ValuesBegin ();
+  Bands::const_iterator fit = rxPsd->ConstBandsBegin ();
+
+  NS_ASSERT (a);
+  NS_ASSERT (b);
+
+  double d = a->GetDistanceFrom (b);
+
+  while (vit != rxPsd->ValuesEnd ())
+    {
+      NS_ASSERT (fit != rxPsd->ConstBandsEnd ());
+      *vit /= CalculateLoss (fit->fc, d); // Prx = Ptx / loss
+      ++vit;
+      ++fit;
+    }
+  return rxPsd;
+}
+
+
+double
+FriisSpectrumPropagationLossModel::CalculateLoss (double f, double d) const
+{
+  NS_ASSERT (d >= 0);
+
+  if (d == 0)
+    {
+      return 1;
+    }
+
+  NS_ASSERT (f > 0);
+  double loss = ( d * f * f) / ((3e8 * 3e8) / (4 * M_PI)) ;
+
+  if (loss < 1)
+    {
+      loss = 1;
+    }
+  return loss;
+}
+
+
+
+
+
+
+
+
+
+
+
+}  // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/friis-spectrum-propagation-loss.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,78 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef FRIIS_SPECTRUM_PROPAGATION_LOSS_H
+#define FRIIS_SPECTRUM_PROPAGATION_LOSS_H
+
+
+#include <ns3/spectrum-propagation-loss-model.h>
+
+
+namespace ns3 {
+
+class MobilityModel;
+
+
+class FriisSpectrumPropagationLossModel : public SpectrumPropagationLossModel
+{
+
+public:
+  FriisSpectrumPropagationLossModel ();
+  ~FriisSpectrumPropagationLossModel ();
+
+  static TypeId GetTypeId ();
+
+
+  virtual Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
+                                                           Ptr<const MobilityModel> a,
+                                                           Ptr<const MobilityModel> b) const;
+
+
+  /**
+   * Return the propagation loss L according to a simplified version of Friis'
+   * formula in which antenna gains are unitary:
+   *
+   *         4 * pi * d * f^2
+   * L = ----------------------
+   *               C^2
+   *
+   * where C = 3e8 m/s is the light speed in the vacuum. The intended
+   * use is to calculate Prx = Ptx * G
+   *
+   * @param f frequency in Hz
+   * @param d distance in m
+   *
+   * @return if Prx < Ptx then return Prx; else return Ptx
+   */
+  double CalculateLoss (double f, double d) const;
+
+protected:
+  double m_propagationSpeed;
+
+};
+
+
+
+
+
+
+} // namespace ns3
+
+#endif /* FRIIS_SPECTRUM_PROPAGATION_LOSS_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/half-duplex-ideal-phy.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,431 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/waveform-generator.h>
+#include <ns3/object-factory.h>
+#include <ns3/log.h>
+#include <math.h>
+#include <ns3/simulator.h>
+#include <ns3/trace-source-accessor.h>
+#include <ns3/packet-burst.h>
+#include <ns3/callback.h>
+#include "half-duplex-ideal-phy.h"
+#include "spectrum-error-model.h"
+
+NS_LOG_COMPONENT_DEFINE ("HalfDuplexIdealPhy");
+
+namespace ns3 {
+
+
+NS_OBJECT_ENSURE_REGISTERED (HalfDuplexIdealPhy);
+
+HalfDuplexIdealPhy::HalfDuplexIdealPhy ()
+  : m_mobility (0),
+    m_netDevice (0),
+    m_channel (0),
+    m_txPsd (0),
+    m_state (IDLE)
+{
+  m_interference.SetErrorModel (CreateObject<ShannonSpectrumErrorModel> ());
+}
+
+
+HalfDuplexIdealPhy::~HalfDuplexIdealPhy ()
+{
+}
+
+void
+HalfDuplexIdealPhy::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_mobility = 0;
+  m_netDevice = 0;
+  m_channel = 0;
+  m_txPsd = 0;
+  m_rxPsd = 0;
+  m_txPacket = 0;
+  m_rxPacket = 0;
+  m_phyMacTxEndCallback      = MakeNullCallback< void, Ptr<const Packet> > ();
+  m_phyMacRxStartCallback    = MakeNullCallback< void > ();
+  m_phyMacRxEndErrorCallback = MakeNullCallback< void > ();
+  m_phyMacRxEndOkCallback    = MakeNullCallback< void, Ptr<Packet> >  ();
+  SpectrumPhy::DoDispose ();
+}
+
+std::ostream& operator<< (std::ostream& os, HalfDuplexIdealPhy::State s)
+{
+  switch (s)     
+    {
+    case HalfDuplexIdealPhy::IDLE:
+      os << "IDLE";
+      break;
+    case HalfDuplexIdealPhy::RX:
+      os << "RX";
+      break;
+    case HalfDuplexIdealPhy::TX:
+      os << "TX";
+      break;
+    default:
+      os << "UNKNOWN";
+      break;
+    }
+  return os;
+}
+
+
+TypeId
+HalfDuplexIdealPhy::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::HalfDuplexIdealPhy")
+    .SetParent<SpectrumPhy> ()
+    .AddConstructor<HalfDuplexIdealPhy> ()
+    .AddAttribute ("Rate",
+                   "The PHY rate used by this device",
+                   DataRateValue (DataRate ("1Mbps")),
+                   MakeDataRateAccessor (&HalfDuplexIdealPhy::SetRate,
+                                         &HalfDuplexIdealPhy::GetRate),
+                   MakeDataRateChecker ())
+    .AddTraceSource ("TxStart",
+                     "Trace fired when a new transmission is started",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyTxStartTrace))
+    .AddTraceSource ("TxEnd",
+                     "Trace fired when a previosuly started transmission is finished",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyTxEndTrace))
+    .AddTraceSource ("RxStart",
+                     "Trace fired when the start of a signal is detected",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxStartTrace))
+    .AddTraceSource ("RxAbort",
+                     "Trace fired when a previously started RX is aborted before time",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxAbortTrace))
+    .AddTraceSource ("RxEndOk",
+                     "Trace fired when a previosuly started RX terminates successfully",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxEndOkTrace))
+    .AddTraceSource ("RxEndError",
+                     "Trace fired when a previosuly started RX terminates with an error (packet is corrupted)",
+                     MakeTraceSourceAccessor (&HalfDuplexIdealPhy::m_phyRxEndErrorTrace))
+  ;
+  return tid;
+}
+
+
+
+Ptr<Object>
+HalfDuplexIdealPhy::GetDevice ()
+{
+  NS_LOG_FUNCTION (this);
+  return m_netDevice;
+}
+
+
+Ptr<Object>
+HalfDuplexIdealPhy::GetMobility ()
+{
+  NS_LOG_FUNCTION (this);
+  return m_mobility;
+}
+
+
+void
+HalfDuplexIdealPhy::SetDevice (Ptr<Object> d)
+{
+  NS_LOG_FUNCTION (this << d);
+  m_netDevice = d;
+}
+
+
+void
+HalfDuplexIdealPhy::SetMobility (Ptr<Object> m)
+{
+  NS_LOG_FUNCTION (this << m);
+  m_mobility = m;
+}
+
+
+void
+HalfDuplexIdealPhy::SetChannel (Ptr<SpectrumChannel> c)
+{
+  NS_LOG_FUNCTION (this << c);
+  m_channel = c;
+}
+
+Ptr<const SpectrumModel> 
+HalfDuplexIdealPhy::GetRxSpectrumModel () const
+{
+  if (m_txPsd)
+    {
+      return m_txPsd->GetSpectrumModel ();
+    }
+  else
+    {
+      return 0;
+    }
+}
+
+
+SpectrumType
+HalfDuplexIdealPhy::GetSpectrumType ()
+{
+  NS_LOG_FUNCTION (this);
+  static SpectrumType st = SpectrumTypeFactory::Create ("IdealOfdm");
+  return st;
+}
+
+void
+HalfDuplexIdealPhy::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
+{
+  NS_LOG_FUNCTION (this << txPsd);
+  NS_ASSERT (txPsd);
+  m_txPsd = txPsd;
+  NS_LOG_INFO ( *txPsd << *m_txPsd);
+}
+
+void
+HalfDuplexIdealPhy::SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd)
+{
+  NS_LOG_FUNCTION (this << noisePsd);
+  NS_ASSERT (noisePsd);
+  m_interference.SetNoisePowerSpectralDensity (noisePsd);
+}
+
+void
+HalfDuplexIdealPhy::SetRate (DataRate rate)
+{
+  NS_LOG_FUNCTION (this << rate);
+  m_rate = rate;
+}
+
+DataRate
+HalfDuplexIdealPhy::GetRate () const
+{
+  NS_LOG_FUNCTION (this);
+  return m_rate;
+}
+
+
+void
+HalfDuplexIdealPhy::SetPhyMacTxEndCallback (PhyMacTxEndCallback c)
+{
+  NS_LOG_FUNCTION (this);
+  m_phyMacTxEndCallback = c;
+}
+
+void
+HalfDuplexIdealPhy::SetPhyMacRxStartCallback (PhyMacRxStartCallback c)
+{
+  NS_LOG_FUNCTION (this);
+  m_phyMacRxStartCallback = c;
+}
+
+
+void
+HalfDuplexIdealPhy::SetPhyMacRxEndErrorCallback (PhyMacRxEndErrorCallback c)
+{
+  NS_LOG_FUNCTION (this);
+  m_phyMacRxEndErrorCallback = c;
+}
+
+
+void
+HalfDuplexIdealPhy::SetPhyMacRxEndOkCallback (PhyMacRxEndOkCallback c)
+{
+  NS_LOG_FUNCTION (this);
+  m_phyMacRxEndOkCallback = c;
+}
+
+void 
+HalfDuplexIdealPhy::ChangeState (State newState)
+{
+  NS_LOG_LOGIC (this << " state: " << m_state << " -> " << newState);
+  m_state = newState;
+}
+
+bool
+HalfDuplexIdealPhy::StartTx (Ptr<Packet> p)
+{
+  NS_LOG_FUNCTION (this << p);
+  NS_LOG_LOGIC (this << "state: " << m_state);
+
+  m_phyTxStartTrace (p);
+
+  switch (m_state)
+    {
+    case RX:
+      AbortRx ();
+      // fall through
+
+    case IDLE:
+      {
+        m_txPacket = p;
+        ChangeState (TX);
+        double txTimeSeconds = m_rate.CalculateTxTime (p->GetSize ());
+        Ptr<PacketBurst> pb = Create<PacketBurst> ();
+        pb->AddPacket (p);
+        m_channel->StartTx (pb, m_txPsd, GetSpectrumType (), Seconds (txTimeSeconds), GetObject<SpectrumPhy> ());
+        Simulator::Schedule(Seconds (txTimeSeconds), &HalfDuplexIdealPhy::EndTx, this);
+      }
+      break;
+
+    case TX:
+
+      return true;
+      break;
+    }
+  return false;
+}
+
+
+void
+HalfDuplexIdealPhy::EndTx ()
+{
+  NS_LOG_FUNCTION (this);
+  NS_LOG_LOGIC (this << "state: " << m_state);
+
+  NS_ASSERT (m_state == TX);
+
+  m_phyTxEndTrace (m_txPacket);
+
+  if (!m_phyMacTxEndCallback.IsNull ())
+    {
+      m_phyMacTxEndCallback (m_txPacket);
+    }
+
+  m_txPacket = 0;
+  ChangeState (IDLE);
+}
+
+
+void
+HalfDuplexIdealPhy::StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration)
+{
+  NS_LOG_FUNCTION (this << pb << rxPsd << st << duration);
+  NS_LOG_LOGIC (this << "state: " << m_state);
+
+  // interference will happen regardless of the state of the receiver
+  m_interference.AddSignal (rxPsd, duration);
+
+  // the device might start RX only if the signal is of a type understood by this device
+  // this corresponds in real device to preamble detection
+  if (st == GetSpectrumType ())
+    {
+      switch (m_state)
+        {
+        case TX:
+          // the PHY will not notice this incoming signal
+          break;
+
+        case RX:
+          // we should check if we should re-sync on a new incoming signal and discard the old one
+          // (somebody calls this the "capture" effect)
+          // criteria considered to do might include the following:
+          //  1) signal strength (e.g., as returned by rxPsd.Norm ())
+          //  2) how much time has passed since previous RX attempt started
+          // if re-sync (capture) is done, then we should call AbortRx ()
+          break;
+
+        case IDLE:
+          // preamble detection and synchronization is supposed to be always successful.
+          NS_LOG_LOGIC (this << " receiving " << pb->GetNPackets () << "  packet(s)" );          
+          NS_ASSERT (pb->GetNPackets () == 1); // this PHY only supports a single packet per waveform
+          Ptr<Packet> p = pb->GetPackets ().front ();
+          m_phyRxStartTrace (p);
+          m_rxPacket = p;
+          m_rxPsd = rxPsd;
+          ChangeState (RX);
+          if (!m_phyMacRxStartCallback.IsNull ())
+            {
+              NS_LOG_LOGIC (this << " calling m_phyMacRxStartCallback");
+              m_phyMacRxStartCallback ();
+            }
+          else
+            {
+              NS_LOG_LOGIC (this << " m_phyMacRxStartCallback is NULL");
+            }
+          m_interference.StartRx (p, rxPsd);
+          NS_LOG_LOGIC (this << " scheduling EndRx with delay " << duration);
+          m_endRxEventId = Simulator::Schedule (duration, &HalfDuplexIdealPhy::EndRx, this);
+
+          break;
+
+        }
+    }
+  
+  NS_LOG_LOGIC (this << "state: " << m_state);
+}
+
+
+void
+HalfDuplexIdealPhy::AbortRx ()
+{
+  NS_LOG_FUNCTION (this);
+  NS_LOG_LOGIC (this << "state: " << m_state);
+
+  NS_ASSERT (m_state == RX);
+  m_phyRxAbortTrace (m_rxPacket);
+  m_endRxEventId.Cancel ();
+  m_rxPacket = 0;
+  ChangeState (IDLE);
+}
+
+
+void
+HalfDuplexIdealPhy::EndRx ()
+{
+  NS_LOG_FUNCTION (this);
+  NS_LOG_LOGIC (this << "state: " << m_state);
+
+  NS_ASSERT (m_state == RX);
+
+  bool rxOk = m_interference.EndRx ();
+
+  if (rxOk)
+    {
+      m_phyRxEndOkTrace (m_rxPacket);
+      if (!m_phyMacRxEndOkCallback.IsNull ())
+        {
+          NS_LOG_LOGIC (this << " calling m_phyMacRxEndOkCallback");
+          m_phyMacRxEndOkCallback (m_rxPacket);
+        }
+      else
+        {
+          NS_LOG_LOGIC (this << " m_phyMacRxEndOkCallback is NULL");
+        }
+    }
+  else
+    {
+      m_phyRxEndErrorTrace (m_rxPacket);
+      if (!m_phyMacRxEndErrorCallback.IsNull ())
+        {
+          NS_LOG_LOGIC (this << " calling m_phyMacRxEndErrorCallback");
+          m_phyMacRxEndErrorCallback ();
+        }
+      else
+        {
+          NS_LOG_LOGIC (this << " m_phyMacRxEndErrorCallback is NULL");
+        }
+    }
+
+  ChangeState (IDLE);
+  m_rxPacket = 0;
+  m_rxPsd = 0;
+}
+
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/half-duplex-ideal-phy.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,235 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef HALF_DUPLEX_IDEAL_PHY_H
+#define HALF_DUPLEX_IDEAL_PHY_H
+
+
+#include <ns3/spectrum-value.h>
+#include <ns3/mobility-model.h>
+#include <ns3/packet.h>
+#include <ns3/nstime.h>
+#include <ns3/net-device.h>
+#include <ns3/spectrum-phy.h>
+#include <ns3/spectrum-channel.h>
+#include <ns3/spectrum-type.h>
+#include <ns3/spectrum-interference.h>
+#include <ns3/data-rate.h>
+#include <ns3/phy-mac.h>
+
+namespace ns3 {
+
+
+
+/**
+ * This PHY layer implementation realizes an ideal OFDM PHY which
+ * transmits half-duplex (i.e., it can either receive or transmit at a
+ * given time). The device is ideal in the sense that:
+ * 1) it uses an error model based on the Shannon capacity, which
+ * assumes ideal channel coding;
+ * 2) it uses ideal signal acquisition, i.e., preamble detection and
+ * synchronization are always successful
+ * 3) it has no PHY layer overhead
+ *
+ * Being half duplex, if a RX is ongoing but a TX is requested, the RX
+ * is aborted and the TX is started. Of course, no RX can be performed
+ * while there is an ongoing TX.
+ *
+ * The use of OFDM is modeled by means of the Spectrum framework. By
+ * calling the method SetTxPowerSpectralDensity(), the
+ * user can specify how much of the spectrum is used, how many
+ * subcarriers are used, and what power is allocated to each
+ * subcarrier.
+ *
+ * The user can also specify the PHY rate
+ * at which communications take place by using SetRate(). This is
+ * equivalent to choosing a particular modulation and coding scheme.
+ *
+ * The use of the ShannonSpectrumErrorModel allows us to account for
+ * the following aspects in determining whether a
+ * transmission is successful or not:
+ * - the PHY rate (trades off communication speed with reliability)
+ * - the power spectral density (trade-off among total power consumed,
+ * total bandwidth used (i.e., how much of the spectrum is occupied),
+ * and communication reliability)
+ * - the signal propagation
+ */
+class HalfDuplexIdealPhy : public SpectrumPhy
+{
+
+public:
+  HalfDuplexIdealPhy ();
+  virtual ~HalfDuplexIdealPhy ();
+
+  /**
+   *  PHY states
+   *
+   */
+  enum State {
+    IDLE, TX, RX
+  };
+
+  static TypeId GetTypeId (void);
+
+  // inherited from SpectrumPhy
+  void SetChannel (Ptr<SpectrumChannel> c);
+  void SetMobility (Ptr<Object> m);
+  void SetDevice (Ptr<Object> d);
+  Ptr<Object> GetMobility ();
+  Ptr<Object> GetDevice ();
+  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
+  void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration);
+  
+
+
+  /**
+   * Get the SpectrumType used by this PHY
+   *
+   * @return
+   */
+  SpectrumType GetSpectrumType ();
+
+
+  /**
+   * set the Power Spectral Density of outgoing signals in power units
+   * (Watt, Pascal...) per Hz.
+   *
+   * @param txPsd
+   */
+  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd);
+
+  /**
+   *
+   * @param noisePsd the Noise Power Spectral Density in power units
+   * (Watt, Pascal...) per Hz.
+   */
+  void SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd);
+
+
+  /**
+   * Start a transmission
+   *
+   *
+   * @param p the packet to be transmitted
+   *
+   * @return true if an error occurred and the transmission was not
+   * started, false otherwise.
+   */
+  bool StartTx (Ptr<Packet> p);
+
+  /**
+   * set the PHY rate to be used by this PHY.
+   *
+   * @param rate
+   */
+  void SetRate (DataRate rate);
+
+  /**
+   *
+   * @return the PHY rate used by this PHY.
+   */
+  DataRate GetRate () const;
+
+  /**
+   * set the callback for the end of a TX, as part of the
+   * interconnections betweenthe PHY and the MAC
+   *
+   * @param c the callback
+   */
+  void SetPhyMacTxEndCallback (PhyMacTxEndCallback c);
+
+  /**
+   * set the callback for the start of RX, as part of the
+   * interconnections betweenthe PHY and the MAC
+   *
+   * @param c the callback
+   */
+  void SetPhyMacRxStartCallback (PhyMacRxStartCallback c);
+
+  /**
+   * set the callback for the end of a RX in error, as part of the
+   * interconnections betweenthe PHY and the MAC
+   *
+   * @param c the callback
+   */
+  void SetPhyMacRxEndErrorCallback (PhyMacRxEndErrorCallback c);
+
+  /**
+   * set the callback for the successful end of a RX, as part of the
+   * interconnections betweenthe PHY and the MAC
+   *
+   * @param c the callback
+   */
+  void SetPhyMacRxEndOkCallback (PhyMacRxEndOkCallback c);
+
+
+
+private:
+
+  virtual void DoDispose (void);
+  
+  void ChangeState (State newState);
+  void EndTx ();
+  void AbortRx ();
+  void EndRx ();
+
+  EventId m_endRxEventId;
+
+  Ptr<Object> m_mobility;
+  Ptr<Object> m_netDevice;
+  Ptr<SpectrumChannel> m_channel;
+
+  Ptr<SpectrumValue> m_txPsd;
+  Ptr<const SpectrumValue> m_rxPsd;
+  Ptr<Packet> m_txPacket;
+  Ptr<Packet> m_rxPacket;
+
+  DataRate m_rate;
+
+  State m_state;
+
+  TracedCallback<Ptr<const Packet> > m_phyTxStartTrace;
+  TracedCallback<Ptr<const Packet> > m_phyTxEndTrace;
+  TracedCallback<Ptr<const Packet> > m_phyRxStartTrace;
+  TracedCallback<Ptr<const Packet> > m_phyRxAbortTrace;
+  TracedCallback<Ptr<const Packet> > m_phyRxEndOkTrace;
+  TracedCallback<Ptr<const Packet> > m_phyRxEndErrorTrace;
+
+  PhyMacTxEndCallback        m_phyMacTxEndCallback;
+  PhyMacRxStartCallback      m_phyMacRxStartCallback;
+  PhyMacRxEndErrorCallback   m_phyMacRxEndErrorCallback;
+  PhyMacRxEndOkCallback      m_phyMacRxEndOkCallback;
+
+  SpectrumInterference m_interference;
+
+};
+
+
+
+
+
+
+}
+
+
+
+
+
+#endif /* HALF_DUPLEX_IDEAL_PHY_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/microwave-oven-spectrum-value-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,165 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "ns3/log.h"
+#include "microwave-oven-spectrum-value-helper.h"
+
+NS_LOG_COMPONENT_DEFINE ("MicrowaveOvenSpectrumValue");
+
+namespace ns3 {
+
+  
+Ptr<SpectrumModel> g_MicrowaveOvenSpectrumModel5Mhz;
+Ptr<SpectrumModel> g_MicrowaveOvenSpectrumModel6Mhz;
+
+
+class MicrowaveOvenSpectrumModel5MhzInitializer
+{
+public:
+  MicrowaveOvenSpectrumModel5MhzInitializer ()
+  {
+    NS_LOG_FUNCTION(this);
+    Bands bands;
+   for (double fl = 2400e6; fl < 2499e6; fl += 5e6)
+      {
+        BandInfo bi;
+        bi.fl = fl;
+        bi.fc = fl + 5e6;
+        bi.fh = fl + 10e6;
+        bands.push_back (bi);
+      }
+   NS_LOG_LOGIC("bands.size () :" << bands.size ());
+   g_MicrowaveOvenSpectrumModel5Mhz = Create<SpectrumModel> (bands);
+  }
+} g_MicrowaveOvenSpectrumModel5MhzInitializerInstance;
+
+
+
+class MicrowaveOvenSpectrumModel6MhzInitializer
+{
+public:
+  MicrowaveOvenSpectrumModel6MhzInitializer ()
+  {
+    NS_LOG_FUNCTION(this);
+    Bands bands;
+    for (double fl = 2360e6; fl < 2479e6; fl += 6e6)
+      {
+        BandInfo bi;
+        bi.fl = fl;
+        bi.fc = fl + 6e6;
+        bi.fh = fl + 12e6;
+        bands.push_back (bi);
+      }
+    NS_LOG_LOGIC("bands.size () :" << bands.size ());
+    g_MicrowaveOvenSpectrumModel6Mhz = Create<SpectrumModel> (bands);
+  }
+} g_MicrowaveOvenSpectrumModel6MhzInitializerInstance;
+
+
+
+
+
+Ptr<SpectrumValue> 
+MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo1 ()
+{  
+  Ptr<SpectrumValue> psd = Create <SpectrumValue> (g_MicrowaveOvenSpectrumModel6Mhz);
+
+  // values from this paper:
+  // Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
+  // "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008,
+  // see Figure 3, "Experimental PSD of MWO #1"
+  // the figure has a resolution of 12 MHz per division; we use a
+  // SpectrumModel with a per-subband bandwidth of 6MHz, so we have
+  // two samples per division. The values used here are an approximation
+  // of what appears in the figure.
+
+  (*psd)[0] = -67.5;
+  (*psd)[1] = -67.5;
+  (*psd)[2] = -67.5;
+  (*psd)[3] = -67.5;
+  (*psd)[4] = -67.5;
+  (*psd)[5] = -66;
+  (*psd)[6] = -64;
+  (*psd)[7] = -63;
+  (*psd)[8] = -62.5;
+  (*psd)[9] = -63;
+  (*psd)[10] = -62.5;
+  (*psd)[11] = -62.5;
+  (*psd)[12] = -58;
+  (*psd)[13] = -53.5;
+  (*psd)[14] = -44;
+  (*psd)[15] = -38;
+  (*psd)[16] = -45;
+  (*psd)[17] = -65;
+  (*psd)[18] = -67.5;
+  (*psd)[19] = -67.5;
+
+  // convert to W/Hz
+  (*psd) = Pow(10.0, ((*psd) - 30)/10.0);
+
+  return psd;
+}
+
+
+
+Ptr<SpectrumValue> 
+MicrowaveOvenSpectrumValueHelper::CreatePowerSpectralDensityMwo2 ()
+{  
+  // values from this paper:
+  // Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
+  // "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008,
+  // see Figure 9, "Experimental PSD of actual MWO #2"
+  // the figure has a resolution of 10 MHz per division; we use a
+  // SpectrumModel with a per-subband bandwidth of 5MHz, so we have
+  // two samples per division. The values used here are an approximation
+  // of what appears in the figure.
+
+  Ptr<SpectrumValue> psd = Create <SpectrumValue> (g_MicrowaveOvenSpectrumModel5Mhz);
+
+  (*psd)[0] = -68; 
+  (*psd)[1] = -68; 
+  (*psd)[2] = -68;
+  (*psd)[3] = -68;
+  (*psd)[4] = -65; 
+  (*psd)[5] = -62;
+  (*psd)[6] = -56; 
+  (*psd)[7] = -55; 
+  (*psd)[8] = -47;
+  (*psd)[9] = -40;
+  (*psd)[10] = -37;
+  (*psd)[11] = -33;
+  (*psd)[12] = -45;
+  (*psd)[13] = -67;
+  (*psd)[14] = -68;
+  (*psd)[15] = -68;
+  (*psd)[16] = -68;
+  (*psd)[17] = -68;
+  (*psd)[18] = -68;
+  (*psd)[19] = -68;
+
+  // convert to W/Hz
+  (*psd) = Pow(10.0, ((*psd) - 30)/10.0);
+
+  return psd;
+}
+
+
+
+} //namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/microwave-oven-spectrum-value-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,67 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H
+#define MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H
+
+
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+
+/** 
+ * This class provides methods for the creation of SpectrumValue
+ * instances that mimic the Power Spectral Density of commercial
+ * microwave ovens based on the measurements reported in the following paper:
+ * Tanim M. Taher, Matthew J. Misurac, Joseph L. LoCicero, and Donald R. Ucci, 
+ * "MICROWAVE OVEN SIGNAL MODELING", in Proc. of IEEE WCNC, 2008
+ *
+ */
+class MicrowaveOvenSpectrumValueHelper 
+{
+public:
+
+  /** 
+   * 
+   * @return the Power Spectral Density of Micro Wave Oven #1 in the
+   * cited paper
+   */
+  static Ptr<SpectrumValue> CreatePowerSpectralDensityMwo1 ();
+
+  /** 
+   * 
+   * @return the Power Spectral Density of Micro Wave Oven #2 in the
+   * cited paper
+   */  
+  static Ptr<SpectrumValue> CreatePowerSpectralDensityMwo2 ();
+
+};
+
+
+
+
+  
+} //namespace ns3
+
+
+
+#endif /*  MICROWAVE_OVEN_SPECTRUM_VALUE_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/multi-model-spectrum-channel.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,353 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/object.h>
+#include <ns3/simulator.h>
+#include <ns3/log.h>
+#include <ns3/packet.h>
+#include <ns3/packet-burst.h>
+#include <ns3/net-device.h>
+#include <ns3/node.h>
+#include <ns3/mobility-model.h>
+#include <ns3/spectrum-phy.h>
+#include <ns3/spectrum-converter.h>
+#include <iostream>
+#include <utility>
+#include "multi-model-spectrum-channel.h"
+
+
+NS_LOG_COMPONENT_DEFINE ("MultiModelSpectrumChannel");
+
+
+namespace ns3 {
+
+
+NS_OBJECT_ENSURE_REGISTERED (MultiModelSpectrumChannel);
+
+
+std::ostream& operator<< (std::ostream& lhs, TxSpectrumModelInfoMap_t& rhs)
+{
+  for (TxSpectrumModelInfoMap_t::iterator it = rhs.begin ();
+       it != rhs.end ();
+       ++it)
+    {
+      SpectrumConverterMap_t::iterator jt;
+      for (jt = it->second.m_spectrumConverterMap.begin ();
+           jt != it->second.m_spectrumConverterMap.end ();
+           ++jt)
+        {
+          lhs << "(" << it->first << "," << jt->first << ") ";
+        }
+    }
+  return lhs;
+}
+
+TxSpectrumModelInfo::TxSpectrumModelInfo (Ptr<const SpectrumModel> txSpectrumModel)
+  : m_txSpectrumModel (txSpectrumModel)
+{
+}
+
+
+RxSpectrumModelInfo::RxSpectrumModelInfo (Ptr<const SpectrumModel> rxSpectrumModel)
+  : m_rxSpectrumModel (rxSpectrumModel)
+{
+}
+
+
+MultiModelSpectrumChannel::MultiModelSpectrumChannel ()
+  : m_PropagationDelay (0),
+    m_PropagationLoss (0)
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+MultiModelSpectrumChannel::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_PropagationLoss = 0;
+  m_PropagationDelay = 0;
+  m_txSpectrumModelInfoMap.clear ();
+  m_rxSpectrumModelInfoMap.clear ();
+  m_phyVector.clear ();
+}
+
+TypeId
+MultiModelSpectrumChannel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::MultiModelSpectrumChannel")
+    .SetParent<SpectrumChannel> ()
+    .AddConstructor<MultiModelSpectrumChannel> ()
+  ;
+  return tid;
+}
+
+
+
+void
+MultiModelSpectrumChannel::AddRx (Ptr<SpectrumPhy> phy)
+{
+  NS_LOG_FUNCTION (this << phy);
+
+  Ptr<const SpectrumModel> rxSpectrumModel = phy->GetRxSpectrumModel ();
+
+  NS_ASSERT_MSG ((0 != rxSpectrumModel), "phy->GetRxSpectrumModel () returned 0. Please check that the RxSpectrumModel is already set for the phy before calling MultiModelSpectrumChannel::AddRx (phy)");
+
+  SpectrumModelUid_t rxSpectrumModelUid = rxSpectrumModel->GetUid ();
+    
+  std::vector<Ptr<SpectrumPhy> >::const_iterator it;
+
+  // make sure this phy had not been already added
+  for ( it = m_phyVector.begin (); it != m_phyVector.end (); ++it)
+    {
+      NS_ASSERT (*it != phy);
+    }
+  m_phyVector.push_back (phy);
+    
+  RxSpectrumModelInfoMap_t::iterator rxInfoIterator = m_rxSpectrumModelInfoMap.find (rxSpectrumModelUid);
+
+  if (rxInfoIterator == m_rxSpectrumModelInfoMap.end ())
+    {
+      // spectrum model unknown, add it to the list of RxSpectrumModels
+      std::pair<RxSpectrumModelInfoMap_t::iterator, bool> ret;
+      ret = m_rxSpectrumModelInfoMap.insert (std::make_pair (rxSpectrumModelUid, RxSpectrumModelInfo (rxSpectrumModel)));            
+      NS_ASSERT (ret.second);
+      // also add the phy to the newly created list of SpectrumPhy for this RxSpectrumModel
+      ret.first->second.m_rxPhyList.push_back (phy);
+      
+      // and create the necessary converters for all the TX spectrum models that we know of
+      for (TxSpectrumModelInfoMap_t::iterator txInfoIterator = m_txSpectrumModelInfoMap.begin ();
+           txInfoIterator != m_txSpectrumModelInfoMap.end ();
+           ++txInfoIterator)
+        {
+          Ptr<const SpectrumModel> txSpectrumModel = txInfoIterator->second.m_txSpectrumModel;
+          NS_LOG_LOGIC ("Creating converters between SpectrumModelUids " << txSpectrumModel->GetUid () << " and " << rxSpectrumModelUid );
+          SpectrumConverter converter (txSpectrumModel, rxSpectrumModel);
+          std::pair<SpectrumConverterMap_t::iterator, bool> ret2;
+          ret2 = txInfoIterator->second.m_spectrumConverterMap.insert (std::make_pair (rxSpectrumModelUid, converter));                     
+          NS_ASSERT (ret2.second);
+        }
+    }
+  else
+    {
+      // spectrum model is already known, just add the device to the corresponding list
+      rxInfoIterator->second.m_rxPhyList.push_back (phy);
+    }
+  
+}
+
+
+TxSpectrumModelInfoMap_t::const_iterator
+MultiModelSpectrumChannel::FindAndEventuallyAddTxSpectrumModel (Ptr<const SpectrumModel> txSpectrumModel)
+{
+  NS_LOG_FUNCTION (this << txSpectrumModel);
+  SpectrumModelUid_t txSpectrumModelUid = txSpectrumModel->GetUid ();
+  TxSpectrumModelInfoMap_t::iterator txInfoIterator = m_txSpectrumModelInfoMap.find (txSpectrumModelUid);
+  
+  if (txInfoIterator == m_txSpectrumModelInfoMap.end ())
+    {     
+      // first time we see this TX SpectrumModel
+      // we add it to the list
+      std::pair<TxSpectrumModelInfoMap_t::iterator, bool> ret;
+      ret = m_txSpectrumModelInfoMap.insert (std::make_pair (txSpectrumModelUid, TxSpectrumModelInfo (txSpectrumModel)));
+      NS_ASSERT (ret.second); 
+      txInfoIterator = ret.first;
+      
+      // and we create the converters for all the RX SpectrumModels that we know of
+      for (RxSpectrumModelInfoMap_t::const_iterator rxInfoIterator = m_rxSpectrumModelInfoMap.begin ();
+           rxInfoIterator != m_rxSpectrumModelInfoMap.end ();
+           ++rxInfoIterator)
+        {
+          Ptr<const SpectrumModel> rxSpectrumModel = rxInfoIterator->second.m_rxSpectrumModel;
+          SpectrumModelUid_t rxSpectrumModelUid = rxSpectrumModel->GetUid ();
+
+          if (rxSpectrumModelUid != txSpectrumModelUid)
+            {
+              NS_LOG_LOGIC ("Creating converters between SpectrumModelUids " << txSpectrumModelUid << " and " << rxSpectrumModelUid );
+
+              SpectrumConverter converter (txSpectrumModel, rxSpectrumModel);
+              std::pair<SpectrumConverterMap_t::iterator, bool> ret2;
+              ret2 = txInfoIterator->second.m_spectrumConverterMap.insert (std::make_pair (rxSpectrumModelUid, converter));                     
+              NS_ASSERT (ret2.second);
+            }
+        }                
+    }
+  else
+    {
+      NS_LOG_LOGIC ("SpectrumModelUid " << txSpectrumModelUid << " already present");     
+    }
+  return txInfoIterator;
+}
+
+
+void
+MultiModelSpectrumChannel::StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> originalTxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> txPhy)
+{
+  NS_LOG_FUNCTION (this << p << *originalTxPowerSpectrum << duration << txPhy);
+
+  NS_ASSERT (txPhy);
+  NS_ASSERT (originalTxPowerSpectrum);
+  
+
+  Ptr<MobilityModel> txMobility = txPhy->GetMobility ()->GetObject<MobilityModel> ();
+  SpectrumModelUid_t txSpectrumModelUid = originalTxPowerSpectrum->GetSpectrumModelUid ();
+  NS_LOG_LOGIC (" txSpectrumModelUid " << txSpectrumModelUid);
+
+  //
+  TxSpectrumModelInfoMap_t::const_iterator txInfoIteratorerator = FindAndEventuallyAddTxSpectrumModel (originalTxPowerSpectrum->GetSpectrumModel ());
+  NS_ASSERT (txInfoIteratorerator != m_txSpectrumModelInfoMap.end ());
+
+  NS_LOG_LOGIC ("converter map for TX SpectrumModel with Uid " << txInfoIteratorerator->first);
+  NS_LOG_LOGIC ("converter map size: " << txInfoIteratorerator->second.m_spectrumConverterMap.size ());
+  NS_LOG_LOGIC ("converter map first element: " << txInfoIteratorerator->second.m_spectrumConverterMap.begin ()->first);
+
+  for (RxSpectrumModelInfoMap_t::const_iterator rxInfoIterator = m_rxSpectrumModelInfoMap.begin ();
+       rxInfoIterator != m_rxSpectrumModelInfoMap.end ();
+       ++rxInfoIterator)
+    {
+      SpectrumModelUid_t rxSpectrumModelUid = rxInfoIterator->second.m_rxSpectrumModel->GetUid ();
+      NS_LOG_LOGIC (" rxSpectrumModelUids " << rxSpectrumModelUid);
+
+      Ptr <SpectrumValue> convertedTxPowerSpectrum;
+
+      if (txSpectrumModelUid == rxSpectrumModelUid)
+        {
+          NS_LOG_LOGIC ("no conversion needed");
+          convertedTxPowerSpectrum = originalTxPowerSpectrum;
+        }
+      else
+        {
+          NS_LOG_LOGIC (" converting txPowerSpectrum SpectrumModelUids" << txSpectrumModelUid << " --> " << rxSpectrumModelUid);
+          SpectrumConverterMap_t::const_iterator rxConverterIterator = txInfoIteratorerator->second.m_spectrumConverterMap.find (rxSpectrumModelUid);
+          NS_ASSERT (rxConverterIterator != txInfoIteratorerator->second.m_spectrumConverterMap.end ());
+          convertedTxPowerSpectrum = rxConverterIterator->second.Convert (originalTxPowerSpectrum);
+        }
+
+      std::list<Ptr<SpectrumPhy> >::const_iterator rxPhyIterator = rxInfoIterator->second.m_rxPhyList.begin ();
+      while (rxPhyIterator != rxInfoIterator->second.m_rxPhyList.end ())
+        {
+          NS_ASSERT_MSG ((*rxPhyIterator)->GetRxSpectrumModel ()->GetUid () == rxSpectrumModelUid,
+                         "MultiModelSpectrumChannel only supports devices that use a single RxSpectrumModel that does not change for the whole simulation");
+          
+          if ((*rxPhyIterator) != txPhy)
+            {
+              Ptr <SpectrumValue> rxPowerSpectrum;
+              Time delay;
+              Ptr<MobilityModel> receiverMobility = (*rxPhyIterator)->GetMobility ()->GetObject<MobilityModel> ();
+
+              if (txMobility && receiverMobility)
+                {
+                  if (m_PropagationLoss)
+                    {
+                      rxPowerSpectrum = m_PropagationLoss->CalcRxPowerSpectralDensity (convertedTxPowerSpectrum, txMobility, receiverMobility);
+                    }
+                  else
+                    {
+                      // rxPowerSpectrum = Copy<SpectrumValue> (convertedTxPowerSpectrum);
+                      rxPowerSpectrum = convertedTxPowerSpectrum->Copy ();
+                    }
+
+                  if (m_PropagationDelay)
+                    {
+                      delay = m_PropagationDelay->GetDelay (txMobility, receiverMobility);
+                    }
+                  else
+                    {
+                      delay = MicroSeconds (0);
+                    }
+                }
+              else
+                {
+                  // rxPowerSpectrum = Copy<SpectrumValue> (convertedTxPowerSpectrum);
+                  rxPowerSpectrum = convertedTxPowerSpectrum->Copy ();
+                  delay = MicroSeconds (0);
+                }
+
+              Ptr<PacketBurst> pktBurstCopy = p->Copy ();
+              Ptr<Object> netDevObj = (*rxPhyIterator)->GetDevice ();
+              if (netDevObj)
+                {
+                  // the receiver has a NetDevice, so we expect that it is attached to a Node
+                  uint32_t dstNode =  netDevObj->GetObject<NetDevice> ()->GetNode ()->GetId ();
+                  Simulator::ScheduleWithContext (dstNode, delay, &MultiModelSpectrumChannel::StartRx, this,
+                                                  pktBurstCopy, rxPowerSpectrum, st, duration, *rxPhyIterator);
+                }
+              else
+                {
+                  // the receiver is not attached to a NetDevice, so we cannot assume that it is attached to a node
+                  Simulator::Schedule (delay, &MultiModelSpectrumChannel::StartRx, this,
+                                       pktBurstCopy, rxPowerSpectrum, st, duration, *rxPhyIterator);
+                }
+            }         
+          ++rxPhyIterator;
+        }
+
+    }
+
+}
+
+void
+MultiModelSpectrumChannel::StartRx (Ptr<PacketBurst> pb, Ptr <SpectrumValue> rxPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver)
+{
+  NS_LOG_FUNCTION (this);
+  receiver->StartRx (pb, rxPsd, st, duration);
+}
+
+
+
+uint32_t
+MultiModelSpectrumChannel::GetNDevices (void) const
+{
+  return m_phyVector.size ();
+
+}
+
+
+Ptr<NetDevice>
+MultiModelSpectrumChannel::GetDevice (uint32_t i) const
+{
+  return m_phyVector.at (i)->GetDevice ()->GetObject<NetDevice> ();
+}
+
+
+
+void
+MultiModelSpectrumChannel::AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss)
+{
+  NS_ASSERT (m_PropagationLoss == 0);
+  m_PropagationLoss = loss;
+}
+
+void
+MultiModelSpectrumChannel::SetPropagationDelayModel (Ptr<PropagationDelayModel> delay)
+{
+  NS_ASSERT (m_PropagationDelay == 0);
+  m_PropagationDelay = delay;
+}
+
+Ptr<SpectrumPropagationLossModel>
+MultiModelSpectrumChannel::GetSpectrumPropagationLossModel (void)
+{
+  NS_LOG_FUNCTION (this);
+  return m_PropagationLoss;
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/multi-model-spectrum-channel.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,183 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#ifndef MULTI_MODEL_SPECTRUM_CHANNEL_H
+#define MULTI_MODEL_SPECTRUM_CHANNEL_H
+
+#include <ns3/spectrum-value.h>
+#include <ns3/spectrum-converter.h>
+#include <ns3/spectrum-channel.h>
+#include <ns3/spectrum-propagation-loss-model.h>
+#include <ns3/propagation-delay-model.h>
+#include <map>
+#include <list>
+
+namespace ns3 {
+
+
+typedef std::map<SpectrumModelUid_t, SpectrumConverter> SpectrumConverterMap_t;
+
+
+class TxSpectrumModelInfo
+{
+public:
+  TxSpectrumModelInfo (Ptr<const SpectrumModel> txSpectrumModel);
+  
+  Ptr<const SpectrumModel> m_txSpectrumModel;
+  SpectrumConverterMap_t m_spectrumConverterMap;
+};
+
+typedef std::map<SpectrumModelUid_t, TxSpectrumModelInfo> TxSpectrumModelInfoMap_t;
+
+
+class RxSpectrumModelInfo
+{
+public:
+  RxSpectrumModelInfo (Ptr<const SpectrumModel> rxSpectrumModel);
+  
+  Ptr<const SpectrumModel> m_rxSpectrumModel;
+  std::list<Ptr<SpectrumPhy> > m_rxPhyList;  
+};
+
+typedef std::map<SpectrumModelUid_t, RxSpectrumModelInfo> RxSpectrumModelInfoMap_t;
+
+
+
+
+/**
+ * This SpectrumChannel implementation can handle the presence of
+ * SpectrumPhy instances which can use
+ * different spectrum models, i.e.,  different SpectrumModel. The only
+ * requirement is that every SpectrumPhy instance uses the same
+ * SpectrumModel for the whole simulation.
+ */
+class MultiModelSpectrumChannel : public SpectrumChannel
+{
+
+public:
+  MultiModelSpectrumChannel ();
+
+  static TypeId GetTypeId (void);
+
+  // inherited from SpectrumChannel
+  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss);
+  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay);
+  virtual void AddRx (Ptr<SpectrumPhy> phy);
+  virtual void StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> sender);
+
+
+  // inherited from Channel
+  virtual uint32_t GetNDevices (void) const;
+  virtual Ptr<NetDevice> GetDevice (uint32_t i) const;
+
+  virtual Ptr<SpectrumPropagationLossModel> GetSpectrumPropagationLossModel (void);
+
+
+protected:
+  void DoDispose ();
+
+
+
+private:
+ 
+
+  /** 
+   * this method checks if m_rxSpectrumModelInfoMap contains an entry
+   * for the given TX SpectrumModel. If such entry exists, it returns
+   * an interator pointing to it. If not, it creates a new entry in
+   * m_txSpectrumMpodelInfoMap, and returns an iterator to it.
+   * 
+   * @param txSpectrumModel the TX SpectrumModel  being considered
+   * 
+   * @return an iterator pointing to the corresponding entry in m_txSpectrumModelInfoMap
+   */
+  TxSpectrumModelInfoMap_t::const_iterator FindAndEventuallyAddTxSpectrumModel (Ptr<const SpectrumModel> txSpectrumModel);
+
+
+  /** 
+   * make sure that there are SpectrumConverters from any
+   * SpectrumPhy being used for TX to the given SpectrumModel being used for RX
+   * 
+   * @param rxPhy the RXing SpectrumPhy
+   * @param rxSpectrumModel the SpectrumModel used for RX by rxPhy
+   */
+  void CheckAddRxSpectrumModel (Ptr<SpectrumPhy> rxPhy, Ptr<const SpectrumModel> rxSpectrumModel);
+
+
+
+  /**
+   * used internally to reschedule transmission after the propagation delay
+   *
+   * @param p
+   * @param rxPowerSpectrum
+   * @param duration
+   * @param receiver
+   */
+  virtual void StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver);
+
+
+
+  /**
+   * propagation delay model to be used with this channel
+   *
+   */
+  Ptr<PropagationDelayModel> m_PropagationDelay;
+
+
+  /**
+   * propagation loss model to be used with this channel
+   *
+   */
+  Ptr<SpectrumPropagationLossModel> m_PropagationLoss;
+
+
+
+  /**
+   * data structure holding, for each TX SpectrumModel,  all the
+   * converters to any RX SpectrumModel, and all the corresponding
+   * SpectrumPhy instances. 
+   * 
+   */
+  TxSpectrumModelInfoMap_t m_txSpectrumModelInfoMap;
+
+
+  /**
+   * data structure holding, for each RX spectrum model, all the
+   * corresponding SpectrumPhy instances.
+   * 
+   */
+  RxSpectrumModelInfoMap_t m_rxSpectrumModelInfoMap;
+  
+  /**
+   * this is only used to provide a straighforward implementation of
+   * GetNDevices() and GetDevice()
+   *
+   */
+  std::vector<Ptr<SpectrumPhy> > m_phyVector;
+};
+
+
+
+}
+
+
+
+#endif /* MULTI_MODEL_SPECTRUM_CHANNEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/non-communicating-net-device.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,269 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "ns3/log.h"
+#include "ns3/queue.h"
+#include "ns3/simulator.h"
+#include "ns3/enum.h"
+#include "ns3/boolean.h"
+#include "ns3/uinteger.h"
+#include "ns3/pointer.h"
+#include "ns3/channel.h"
+#include "non-communicating-net-device.h"
+
+
+NS_LOG_COMPONENT_DEFINE ("NonCommunicatingNetDevice");
+
+
+namespace ns3 {
+
+
+
+NS_OBJECT_ENSURE_REGISTERED (NonCommunicatingNetDevice);
+
+TypeId
+NonCommunicatingNetDevice::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::NonCommunicatingNetDevice")
+    .SetParent<NetDevice> ()
+    .AddConstructor<NonCommunicatingNetDevice> ()   
+    .AddAttribute ("Phy", "The PHY layer attached to this device.",
+                   PointerValue (),
+                   MakePointerAccessor (&NonCommunicatingNetDevice::GetPhy,
+                                        &NonCommunicatingNetDevice::SetPhy),
+                   MakePointerChecker<Object> ())
+  ;
+  return tid;
+}
+
+NonCommunicatingNetDevice::NonCommunicatingNetDevice ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+NonCommunicatingNetDevice::~NonCommunicatingNetDevice ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+NonCommunicatingNetDevice::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_node = 0;
+  m_channel = 0;
+  m_phy = 0;
+  NetDevice::DoDispose ();
+}
+
+
+void
+NonCommunicatingNetDevice::SetIfIndex (const uint32_t index)
+{
+  NS_LOG_FUNCTION (index);
+  m_ifIndex = index;
+}
+
+uint32_t
+NonCommunicatingNetDevice::GetIfIndex (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_ifIndex;
+}
+
+bool
+NonCommunicatingNetDevice::SetMtu (uint16_t mtu)
+{
+  NS_LOG_FUNCTION (mtu);
+  return (mtu == 0);
+}
+
+uint16_t
+NonCommunicatingNetDevice::GetMtu (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return 0;
+}
+
+void
+NonCommunicatingNetDevice::SetAddress (Address address)
+{
+  NS_LOG_FUNCTION (this);
+}
+
+Address
+NonCommunicatingNetDevice::GetAddress (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return Address ();
+}
+
+bool
+NonCommunicatingNetDevice::IsBroadcast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+Address
+NonCommunicatingNetDevice::GetBroadcast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return Address ();
+}
+
+bool
+NonCommunicatingNetDevice::IsMulticast (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+Address
+NonCommunicatingNetDevice::GetMulticast (Ipv4Address addr) const
+{
+  NS_LOG_FUNCTION (addr);
+  return Address ();
+}
+
+Address
+NonCommunicatingNetDevice::GetMulticast (Ipv6Address addr) const
+{
+  NS_LOG_FUNCTION (addr);
+  return Address ();
+}
+
+bool
+NonCommunicatingNetDevice::IsPointToPoint (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+bool
+NonCommunicatingNetDevice::IsBridge (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+
+Ptr<Node>
+NonCommunicatingNetDevice::GetNode (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_node;
+}
+
+void
+NonCommunicatingNetDevice::SetNode (Ptr<Node> node)
+{
+  NS_LOG_FUNCTION (node);
+
+  m_node = node;
+}
+
+void
+NonCommunicatingNetDevice::SetPhy (Ptr<Object> phy)
+{
+  NS_LOG_FUNCTION (this << phy);
+  m_phy = phy;
+}
+
+
+Ptr<Object>
+NonCommunicatingNetDevice::GetPhy () const
+{
+  NS_LOG_FUNCTION (this);
+  return m_phy;
+}
+
+
+void
+NonCommunicatingNetDevice::SetChannel (Ptr<Channel> c)
+{
+  NS_LOG_FUNCTION (this << c);
+  m_channel = c;
+}
+
+Ptr<Channel>
+NonCommunicatingNetDevice::GetChannel (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_channel;
+}
+
+
+bool
+NonCommunicatingNetDevice::NeedsArp (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+bool
+NonCommunicatingNetDevice::IsLinkUp (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+void
+NonCommunicatingNetDevice::AddLinkChangeCallback (Callback<void> callback)
+{
+  NS_LOG_FUNCTION (&callback);
+}
+
+void
+NonCommunicatingNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb)
+{
+  NS_LOG_FUNCTION (&cb);
+}
+
+void
+NonCommunicatingNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb)
+{
+  NS_LOG_FUNCTION (&cb);
+}
+
+bool
+NonCommunicatingNetDevice::SupportsSendFrom () const
+{
+  NS_LOG_FUNCTION (this);
+  return false;
+}
+
+
+bool
+NonCommunicatingNetDevice::Send (Ptr<Packet> packet,const Address& dest, uint16_t protocolNumber)
+{
+  NS_LOG_FUNCTION (packet << dest << protocolNumber);
+  return false;
+}
+
+bool
+NonCommunicatingNetDevice::SendFrom (Ptr<Packet> packet, const Address& src, const Address& dest, uint16_t protocolNumber)
+{
+  NS_LOG_FUNCTION (packet << src << dest << protocolNumber);
+  return false;
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/non-communicating-net-device.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,137 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef NON_COMMUNICATING_NET_DEVICE_H
+#define NON_COMMUNICATING_NET_DEVICE_H
+
+#include <string.h>
+#include <ns3/node.h>
+#include <ns3/address.h>
+#include <ns3/net-device.h>
+#include <ns3/callback.h>
+#include <ns3/packet.h>
+#include <ns3/traced-callback.h>
+#include <ns3/ptr.h>
+
+namespace ns3 {
+
+
+class SpectrumChannel;
+class Channel;
+class SpectrumErrorModel;
+class Queue;
+
+
+
+/**
+ * This class implements a device which does not communicate, in the
+ * sense that it does not interact with the above protocol stack. The
+ * purpose of this NetDevice is to be used for devices such as
+ * microwave ovens, waveform generators and spectrum
+ * analyzers. Since the ns-3 channel API is strongly based on the presence of
+ * NetDevice class instances, it is convenient to provide a NetDevice that can
+ * be used with such non-communicating devices.
+ */
+class NonCommunicatingNetDevice : public NetDevice
+{
+public:
+
+  static TypeId GetTypeId (void);
+
+  NonCommunicatingNetDevice ();
+  virtual ~NonCommunicatingNetDevice ();
+
+
+  /**
+   * This class doesn't talk directly with the underlying channel (a
+   * dedicated PHY class is expected to do it), however the NetDevice
+   * specification features a GetChannel() method. This method here
+   * is therefore provide to allow NonCommunicatingNetDevice::GetChannel() to have
+   * something meaningful to return.
+   *
+   * @param c the underlying channel
+   */
+  void SetChannel (Ptr<Channel> c);
+
+
+  /**
+   * Set the Phy object which is attached to this device.
+   * This object is needed so that we can set/get attributes and
+   * connect to trace sources of the PHY from the net device.
+   *
+   * @param phy the Phy object embedded within this device.
+   */
+  void SetPhy (Ptr<Object> phy);
+
+  /**
+   * @return a reference to the PHY object embedded in this NetDevice.
+   */
+  Ptr<Object> GetPhy () const;
+
+
+
+  // inherited from NetDevice
+  virtual void SetIfIndex (const uint32_t index);
+  virtual uint32_t GetIfIndex (void) const;
+  virtual Ptr<Channel> GetChannel (void) const;
+  virtual bool SetMtu (const uint16_t mtu);
+  virtual uint16_t GetMtu (void) const;
+  virtual void SetAddress (Address address);
+  virtual Address GetAddress (void) const;
+  virtual bool IsLinkUp (void) const;
+  virtual void AddLinkChangeCallback (Callback<void> callback);
+  virtual bool IsBroadcast (void) const;
+  virtual Address GetBroadcast (void) const;
+  virtual bool IsMulticast (void) const;
+  virtual bool IsPointToPoint (void) const;
+  virtual bool IsBridge (void) const;
+  virtual bool Send (Ptr<Packet> packet, const Address& dest,
+                     uint16_t protocolNumber);
+  virtual bool SendFrom (Ptr<Packet> packet, const Address& source, const Address& dest,
+                         uint16_t protocolNumber);
+  virtual Ptr<Node> GetNode (void) const;
+  virtual void SetNode (Ptr<Node> node);
+  virtual bool NeedsArp (void) const;
+  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
+  virtual Address GetMulticast (Ipv4Address addr) const;
+  virtual Address GetMulticast (Ipv6Address addr) const;
+  virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
+  virtual bool SupportsSendFrom (void) const;
+
+
+
+
+
+private:
+
+  virtual void DoDispose (void);
+
+  Ptr<Node>    m_node;
+  Ptr<Channel> m_channel;
+
+  uint32_t m_ifIndex;
+
+  Ptr<Object> m_phy;
+};
+
+
+} // namespace ns3
+
+#endif // NON_COMMUNICATING_NET_DEVICE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/single-model-spectrum-channel.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,215 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/object.h>
+#include <ns3/simulator.h>
+#include <ns3/log.h>
+#include <ns3/packet.h>
+#include <ns3/packet-burst.h>
+#include <ns3/net-device.h>
+#include <ns3/node.h>
+#include <ns3/mobility-model.h>
+#include <ns3/spectrum-phy.h>
+#include "single-model-spectrum-channel.h"
+
+
+NS_LOG_COMPONENT_DEFINE ("SingleModelSpectrumChannel");
+
+
+namespace ns3 {
+
+
+NS_OBJECT_ENSURE_REGISTERED (SingleModelSpectrumChannel);
+
+SingleModelSpectrumChannel::SingleModelSpectrumChannel ()
+  : m_spectrumModel (0),
+    m_PropagationDelay (0),
+    m_PropagationLoss (0)
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+SingleModelSpectrumChannel::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_phyList.clear ();
+  m_spectrumModel = 0;
+  m_PropagationDelay = 0;
+  m_PropagationLoss = 0;
+  SpectrumChannel::DoDispose ();
+}
+
+TypeId
+SingleModelSpectrumChannel::GetTypeId (void)
+{
+  NS_LOG_FUNCTION_NOARGS ();
+  static TypeId tid = TypeId ("ns3::SingleModelSpectrumChannel")
+    .SetParent<SpectrumChannel> ()
+    .AddConstructor<SingleModelSpectrumChannel> ()
+  ;
+  return tid;
+}
+
+
+void
+SingleModelSpectrumChannel::AddRx (Ptr<SpectrumPhy> phy)
+{
+  NS_LOG_FUNCTION (this << phy);
+  m_phyList.push_back (phy);
+}
+
+
+void
+SingleModelSpectrumChannel::StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> txPhy)
+{
+  NS_LOG_FUNCTION (this << p << *txPsd << st << duration << txPhy);
+  NS_ASSERT_MSG (p, "NULL PacketBurst");
+  NS_ASSERT_MSG (txPsd, "NULL txPsd");
+  NS_ASSERT_MSG (txPhy, "NULL txPhy");
+
+  // just a sanity check routine. We might want to remove it to save some computational load -- one "if" statement  ;-)
+  if (m_spectrumModel == 0)
+    {
+      // first pak, record SpectrumModel
+      m_spectrumModel = txPsd->GetSpectrumModel ();
+    }
+  else
+    {
+      // all attached SpectrumPhy instances must use the same SpectrumModel
+      NS_ASSERT (*(txPsd->GetSpectrumModel ()) == *m_spectrumModel);
+    }
+
+
+  PhyList::const_iterator rxPhyIterator = m_phyList.begin ();
+
+  Ptr<MobilityModel> senderMobility = txPhy->GetMobility ()->GetObject<MobilityModel> ();
+
+  NS_ASSERT (rxPhyIterator != m_phyList.end ());
+
+  while (rxPhyIterator != m_phyList.end ())
+    {
+      if ((*rxPhyIterator) != txPhy)
+        {
+          Ptr <SpectrumValue> rxPsd;
+          Time delay;
+          Ptr<MobilityModel> receiverMobility = (*rxPhyIterator)->GetMobility ()->GetObject<MobilityModel> ();
+
+          if (senderMobility && receiverMobility)
+            {
+
+
+              if (m_PropagationLoss)
+                {
+                  rxPsd = m_PropagationLoss->CalcRxPowerSpectralDensity (txPsd, senderMobility, receiverMobility);
+                }
+              else
+                {
+                  rxPsd = txPsd;
+                }
+
+              if (m_PropagationDelay)
+                {
+                  delay = m_PropagationDelay->GetDelay (senderMobility, receiverMobility);
+                }
+              else
+                {
+                  delay = MicroSeconds (0);
+                }
+            }
+          else
+            {
+              rxPsd = txPsd;
+              delay = MicroSeconds (0);
+            }
+
+          Ptr<PacketBurst> pktBurstCopy = p->Copy ();
+          Ptr<Object> netDevObj = (*rxPhyIterator)->GetDevice ();
+          if (netDevObj)
+            {
+              // the receiver has a NetDevice, so we expect that it is attached to a Node
+              uint32_t dstNode =  netDevObj->GetObject<NetDevice> ()->GetNode ()->GetId ();
+              Simulator::ScheduleWithContext (dstNode, delay, &SingleModelSpectrumChannel::StartRx, this,
+                                              pktBurstCopy, rxPsd, st, duration, *rxPhyIterator);
+            }
+          else
+            {
+              // the receiver is not attached to a NetDevice, so we cannot assume that it is attached to a node
+              Simulator::Schedule (delay, &SingleModelSpectrumChannel::StartRx, this,
+                                   pktBurstCopy, rxPsd, st, duration, *rxPhyIterator);
+            }
+        }
+      ++rxPhyIterator;
+    }
+
+}
+
+void
+SingleModelSpectrumChannel::StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver)
+{
+  NS_LOG_FUNCTION (this << p << *rxPsd << st << duration << receiver);
+  receiver->StartRx (p, rxPsd, st, duration);
+}
+
+
+
+uint32_t
+SingleModelSpectrumChannel::GetNDevices (void) const
+{
+  NS_LOG_FUNCTION (this);
+  return m_phyList.size ();
+}
+
+
+Ptr<NetDevice>
+SingleModelSpectrumChannel::GetDevice (uint32_t i) const
+{
+  NS_LOG_FUNCTION (this << i);
+  return m_phyList.at (i)->GetDevice ()->GetObject<NetDevice> ();
+}
+
+
+
+void
+SingleModelSpectrumChannel::AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss)
+{
+  NS_LOG_FUNCTION (this << loss);
+  NS_ASSERT (m_PropagationLoss == 0);
+  m_PropagationLoss = loss;
+}
+
+void
+SingleModelSpectrumChannel::SetPropagationDelayModel (Ptr<PropagationDelayModel> delay)
+{
+  NS_LOG_FUNCTION (this << delay);
+  NS_ASSERT (m_PropagationDelay == 0);
+  m_PropagationDelay = delay;
+}
+
+
+Ptr<SpectrumPropagationLossModel> 
+SingleModelSpectrumChannel::GetSpectrumPropagationLossModel (void)
+{
+  NS_LOG_FUNCTION (this); 
+  return m_PropagationLoss;
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/single-model-spectrum-channel.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,116 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SINGLE_MODEL_SPECTRUM_CHANNEL_H
+#define SINGLE_MODEL_SPECTRUM_CHANNEL_H
+
+
+#include <ns3/spectrum-channel.h>
+#include <ns3/spectrum-propagation-loss-model.h>
+#include <ns3/propagation-delay-model.h>
+
+namespace ns3 {
+
+
+
+/**
+ * @brief SpectrumChannel implementation which handles a single spectrum model
+ *
+ * All SpectrumPhy layers attached to this SpectrumChannel
+ */
+class SingleModelSpectrumChannel : public SpectrumChannel
+{
+
+public:
+  SingleModelSpectrumChannel ();
+
+  static TypeId GetTypeId (void);
+
+
+  // inherited from SpectrumChannel
+  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss);
+  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay);
+  virtual void AddRx (Ptr<SpectrumPhy> phy);
+  virtual void StartTx (Ptr<PacketBurst> p, 
+                        Ptr <SpectrumValue> txPsd, 
+                        SpectrumType st, 
+                        Time duration, 
+                        Ptr<SpectrumPhy> sender);
+
+
+  // inherited from Channel
+  virtual uint32_t GetNDevices (void) const;
+  virtual Ptr<NetDevice> GetDevice (uint32_t i) const;
+
+
+  typedef std::vector<Ptr<SpectrumPhy> > PhyList;
+
+  virtual Ptr<SpectrumPropagationLossModel> GetSpectrumPropagationLossModel (void);
+
+private:
+
+  virtual void DoDispose ();
+
+  /**
+   * used internally to reschedule transmission after the propagation delay
+   *
+   * @param p
+   * @param rxPowerSpectrum
+   * @param st
+   * @param duration
+   * @param receiver
+   */
+  virtual void StartRx (Ptr<PacketBurst> p, Ptr <SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration, Ptr<SpectrumPhy> receiver);
+
+  /**
+   * list of SpectrumPhy instances attached to
+   * the channel
+   */
+  PhyList m_phyList;
+
+  /**
+   * SpectrumModel that this channel instance
+   * is supporting
+   */
+  Ptr<const SpectrumModel> m_spectrumModel;
+
+
+  /**
+   * propagation delay model to be used with this channel
+   *
+   */
+  Ptr<PropagationDelayModel> m_PropagationDelay;
+
+
+  /**
+   * propagation loss model to be used with this channel
+   *
+   */
+  Ptr<SpectrumPropagationLossModel> m_PropagationLoss;
+
+};
+
+
+
+}
+
+
+
+#endif /* SINGLE_MODEL_SPECTRUM_CHANNEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-analyzer.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,238 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/spectrum-analyzer.h>
+#include <ns3/object-factory.h>
+#include <ns3/log.h>
+#include <ns3/double.h>
+#include <ns3/simulator.h>
+#include <ns3/trace-source-accessor.h>
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumAnalyzer");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (SpectrumAnalyzer);
+
+SpectrumAnalyzer::SpectrumAnalyzer ()
+  : m_mobility (0),
+    m_netDevice (0),
+    m_channel (0),
+    m_spectrumModel (0),
+    m_sumPowerSpectralDensity (0),    
+    m_resolution (MilliSeconds (50)),
+    m_active (false)
+{
+  NS_LOG_FUNCTION (this);
+}
+
+
+
+SpectrumAnalyzer::~SpectrumAnalyzer ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+SpectrumAnalyzer::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_mobility = 0;
+  m_netDevice = 0;
+  m_channel = 0;
+  m_spectrumModel = 0;
+  m_sumPowerSpectralDensity = 0;
+  m_energySpectralDensity = 0;
+  SpectrumPhy::DoDispose ();
+}
+
+TypeId
+SpectrumAnalyzer::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::SpectrumAnalyzer")
+    .SetParent<SpectrumPhy> ()
+    .AddConstructor<SpectrumAnalyzer> ()
+    .AddAttribute ("Resolution",
+                   "the lengh of the time interval over which the power spectral "
+                   "density of incoming signals is averaged",
+                   TimeValue (MilliSeconds (1)),
+                   MakeTimeAccessor (&SpectrumAnalyzer::m_resolution),
+                   MakeTimeChecker ())
+    .AddAttribute ("NoisePowerSpectralDensity",
+                   "the power spectral density of the measuring instrument noise, in Watt/Hz. Mostly useful to make spectrograms look more similar to those obtained by real devices. Defaults to the value for thermal noise at 300K.",
+                   DoubleValue (1.38e-23*300),
+                   MakeDoubleAccessor (&SpectrumAnalyzer::m_noisePowerSpectralDensity),
+                   MakeDoubleChecker<double> ())
+    .AddTraceSource ("AveragePowerSpectralDensityReport",
+                     "Trace fired whenever a new value for the average Power Spectral Density is calculated",
+                     MakeTraceSourceAccessor (&SpectrumAnalyzer::m_averagePowerSpectralDensityReportTrace))
+  ;
+  return tid;
+}
+
+
+
+Ptr<Object>
+SpectrumAnalyzer::GetDevice ()
+{
+  return m_netDevice;
+}
+
+
+Ptr<Object>
+SpectrumAnalyzer::GetMobility ()
+{
+  return m_mobility;
+}
+
+
+Ptr<const SpectrumModel> 
+SpectrumAnalyzer::GetRxSpectrumModel () const
+{
+  return m_spectrumModel;
+}
+
+void
+SpectrumAnalyzer::SetDevice (Ptr<Object> d)
+{
+  NS_LOG_FUNCTION (this << d);
+  m_netDevice = d;
+}
+
+
+void
+SpectrumAnalyzer::SetMobility (Ptr<Object> m)
+{
+  NS_LOG_FUNCTION (this << m);
+  m_mobility = m;
+}
+
+
+void
+SpectrumAnalyzer::SetChannel (Ptr<SpectrumChannel> c)
+{
+  NS_LOG_FUNCTION (this << c);
+  m_channel = c;
+}
+
+
+
+
+void
+SpectrumAnalyzer::StartRx (Ptr<PacketBurst> pb, 
+                           Ptr <const SpectrumValue> rxPowerSpectralDensity, 
+                           SpectrumType st, 
+                           Time duration)
+{
+  NS_LOG_FUNCTION ( this << st << duration << *rxPowerSpectralDensity);
+  AddSignal (rxPowerSpectralDensity);
+  Simulator::Schedule (duration, &SpectrumAnalyzer::SubtractSignal, this, rxPowerSpectralDensity);
+}
+
+
+void
+SpectrumAnalyzer::AddSignal  (Ptr<const SpectrumValue> psd)
+{
+  NS_LOG_FUNCTION (this << *psd);
+  UpdateEnergyReceivedSoFar ();
+  (*m_sumPowerSpectralDensity) += (*psd);
+}
+
+void
+SpectrumAnalyzer::SubtractSignal  (Ptr<const SpectrumValue> psd)
+{ 
+  NS_LOG_FUNCTION (this << *psd);
+  UpdateEnergyReceivedSoFar ();
+  (*m_sumPowerSpectralDensity) -= (*psd);
+}
+
+void
+SpectrumAnalyzer::UpdateEnergyReceivedSoFar  ()
+{
+  NS_LOG_FUNCTION (this);
+  if (m_lastChangeTime < Now ())
+    {
+      (*m_energySpectralDensity) += (*m_sumPowerSpectralDensity) * ((Now () - m_lastChangeTime).GetSeconds ());
+      m_lastChangeTime = Now ();
+    }
+  else
+    {
+      NS_ASSERT (m_lastChangeTime == Now ());
+    }
+}
+
+void
+SpectrumAnalyzer::GenerateReport ()
+{
+  NS_LOG_FUNCTION (this);
+
+  UpdateEnergyReceivedSoFar ();
+  Ptr<SpectrumValue> avgPowerSpectralDensity = Create<SpectrumValue> (m_sumPowerSpectralDensity->GetSpectrumModel ());
+  (*avgPowerSpectralDensity) = (*m_energySpectralDensity) / m_resolution.GetSeconds ();  
+  (*avgPowerSpectralDensity) += m_noisePowerSpectralDensity;
+  (*m_energySpectralDensity) = 0;
+
+  NS_LOG_INFO ("generating report");
+  m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity);
+
+  *avgPowerSpectralDensity = 0;
+
+  if (m_active)
+    {
+      Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this);
+    }
+}
+
+
+
+void
+SpectrumAnalyzer::SetRxSpectrumModel (Ptr<SpectrumModel> f)
+{
+  NS_LOG_FUNCTION (this << f);
+  m_spectrumModel = f;
+  NS_ASSERT (!m_sumPowerSpectralDensity);
+  m_sumPowerSpectralDensity = Create<SpectrumValue> (f);
+  m_energySpectralDensity = Create<SpectrumValue> (f);
+  NS_ASSERT (m_sumPowerSpectralDensity);
+}
+
+
+
+
+void
+SpectrumAnalyzer::Start ()
+{
+  NS_LOG_FUNCTION (this);
+  if (!m_active)
+    {
+      NS_LOG_LOGIC ("activating");
+      m_active = true;
+      Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this);
+    }
+}
+
+
+void
+SpectrumAnalyzer::Stop ()
+{
+  m_active = false;
+}
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-analyzer.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,123 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_ANALYZER_H
+#define SPECTRUM_ANALYZER_H
+
+
+#include <ns3/spectrum-value.h>
+#include <ns3/mobility-model.h>
+#include <ns3/packet.h>
+#include <ns3/nstime.h>
+#include <ns3/net-device.h>
+#include <ns3/spectrum-phy.h>
+#include <ns3/spectrum-channel.h>
+#include <string>
+#include <fstream>
+
+namespace ns3 {
+
+
+/**
+ * Simple SpectrumPhy implemetation that averages the spectrum power
+ * density of incoming transmissions to produce a spectrogram.
+ *
+ */
+class SpectrumAnalyzer : public SpectrumPhy
+{
+
+public:
+  SpectrumAnalyzer ();
+  virtual ~SpectrumAnalyzer ();
+
+  static TypeId GetTypeId (void);
+
+// inherited from SpectrumPhy
+  void SetChannel (Ptr<SpectrumChannel> c);
+  void SetMobility (Ptr<Object> m);
+  void SetDevice (Ptr<Object> d);
+  Ptr<Object> GetMobility ();
+  Ptr<Object> GetDevice ();
+  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
+  void StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPowerSpectralDensity, SpectrumType st, Time duration);
+
+
+  /**
+   * Set the spectrum model used by the SpectrumAnalyzer to represent incoming signals
+   *
+   * @param m 
+   */
+  void SetRxSpectrumModel (Ptr<SpectrumModel> m);
+
+  
+  /**
+   * Start the spectrum analyzer
+   *
+   */
+  virtual void Start ();
+
+  /**
+   * Stop the spectrum analyzer
+   *
+   */
+  virtual void Stop ();
+
+
+protected:
+  
+  void DoDispose ();
+
+private:  
+
+
+  Ptr<Object> m_mobility;
+  Ptr<Object> m_netDevice;
+  Ptr<SpectrumChannel> m_channel;
+ 
+  virtual void GenerateReport ();
+
+  void AddSignal (Ptr<const SpectrumValue> psd);
+  void SubtractSignal  (Ptr<const SpectrumValue> psd);
+  void UpdateEnergyReceivedSoFar ();
+
+  Ptr<SpectrumModel> m_spectrumModel;
+  Ptr<SpectrumValue> m_sumPowerSpectralDensity;
+  Ptr<SpectrumValue> m_energySpectralDensity;
+  double m_noisePowerSpectralDensity;
+  Time m_resolution;
+  Time m_lastChangeTime;
+  bool m_active;
+
+  TracedCallback<Ptr<const SpectrumValue> > m_averagePowerSpectralDensityReportTrace;
+
+};
+
+
+
+
+
+
+}
+
+
+
+
+
+#endif /* SPECTRUM_ANALYZER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-channel.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,42 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "spectrum-channel.h"
+
+
+namespace ns3 {
+
+
+NS_OBJECT_ENSURE_REGISTERED (SpectrumChannel);
+
+TypeId
+SpectrumChannel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::SpectrumChannel")
+    .SetParent<Channel> ()
+  ;
+  return tid;
+}
+
+SpectrumChannel::~SpectrumChannel ()
+{
+}
+
+} // namespace
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-channel.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,106 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#ifndef SPECTRUM_CHANNEL_H
+#define SPECTRUM_CHANNEL_H
+
+#include <ns3/object.h>
+#include <ns3/nstime.h>
+#include <ns3/channel.h>
+#include <ns3/spectrum-type.h>
+
+namespace ns3 {
+
+
+class PacketBurst;
+class SpectrumValue;
+class SpectrumPhy;
+class SpectrumPropagationLossModel;
+class PropagationDelayModel;
+
+/**
+ * Defines the interface for spectrum-aware channel implementations
+ *
+ */
+class SpectrumChannel : public Channel
+{
+public:
+  
+  virtual ~SpectrumChannel ();
+  static TypeId GetTypeId (void);
+
+
+  /**
+   * set the propagation loss model to be used
+   * \param loss Ptr to the propagation loss model to be used.
+   */
+  virtual void AddSpectrumPropagationLossModel (Ptr<SpectrumPropagationLossModel> loss) = 0;
+
+  /**
+   * set the  propagation delay model to be used
+   * \param delay Ptr to the propagation delay model to be used.
+   */
+  virtual void SetPropagationDelayModel (Ptr<PropagationDelayModel> delay) = 0;
+
+
+  /**
+   * Used by attached PHY instances to transmit waveforms on the channel
+   *
+   * @param p the PacketBurst associated with the waveform being transmitted
+   * @param txPsd the Power Spectral Density of the
+   * waveform, in linear units. The exact unit will depend on the
+   * type of transmission medium involved: W for radio communications, Pa for
+   * underwater acoustic communications. Other transmission media to be defined.
+   * @param st spectrum type
+   * @param duration duration of the packet transmission. It is
+   * assumed that the Power Spectral Density remains constant for the
+   * whole duration of the transmission. In other words, all waveform
+   * have a rect shape with respect to time.
+   * @param sender the SpectrumPhy instance making this function call
+   */
+  virtual void StartTx (Ptr<PacketBurst> p, Ptr <SpectrumValue> txPsd, SpectrumType st, Time duration, Ptr<SpectrumPhy> sender) = 0;
+
+  /**
+   * @brief add a SpectrumPhy to a channel, so it can receive packets
+   *
+   * This method is used to attach a SpectrumPhy instance to a
+   * SpectrumChannel instance, so that the SpectrumPhy can receive
+   * packets sent on that channel. Note that a SpectrumPhy that only
+   * transmits (without receiveing ever) does not need to be added to
+   * the channel. 
+   *
+   * This method is to be implemented by all classes inheriting from
+   * SpectrumChannel. 
+   *
+   * @param phy the SpectrumPhy instance to be added to the channel as
+   * a receiver. 
+   */
+  virtual void AddRx (Ptr<SpectrumPhy> phy) = 0;
+
+};
+
+
+
+}
+
+
+
+#endif /* SPECTRUM_CHANNEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-converter.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,110 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/spectrum-converter.h>
+#include <ns3/assert.h>
+#include <ns3/log.h>
+#include <algorithm>
+
+
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumConverter");
+
+namespace ns3 {
+
+SpectrumConverter::SpectrumConverter ()
+{
+}
+
+SpectrumConverter::SpectrumConverter (Ptr<const SpectrumModel> fromSpectrumModel, Ptr<const SpectrumModel> toSpectrumModel)
+{
+  NS_LOG_FUNCTION (this);
+  m_fromSpectrumModel = fromSpectrumModel;
+  m_toSpectrumModel = toSpectrumModel;
+
+  for (Bands::const_iterator toit = toSpectrumModel->Begin (); toit != toSpectrumModel->End (); ++toit)
+    {
+      std::vector<double> coeffs;
+
+      for (Bands::const_iterator fromit = fromSpectrumModel->Begin (); fromit != fromSpectrumModel->End (); ++fromit)
+        {
+          double c = GetCoefficient (*fromit, *toit);
+          NS_LOG_LOGIC ("(" << fromit->fl << ","  << fromit->fh << ")"
+                            << " --> " <<
+                        "(" << toit->fl << "," << toit->fh << ")"
+                            << " = " << c);
+          coeffs.push_back (c);
+        }
+
+      m_conversionMatrix.push_back (coeffs);
+    }
+
+}
+
+
+double SpectrumConverter::GetCoefficient (const BandInfo& from, const BandInfo& to) const
+{
+  NS_LOG_FUNCTION (this);
+  double coeff = std::min (from.fh, to.fh) - std::max (from.fl, to.fl);
+  coeff = std::max (0.0, coeff);
+  coeff = std::min (1.0, coeff / (to.fh - to.fl));
+  return coeff;
+}
+
+
+
+Ptr<SpectrumValue>
+SpectrumConverter::Convert (Ptr<const SpectrumValue> fvvf) const
+{
+  NS_ASSERT ( *(fvvf->GetSpectrumModel ()) == *m_fromSpectrumModel);
+
+  Ptr<SpectrumValue> tvvf = Create<SpectrumValue> (m_toSpectrumModel);
+
+  Values::iterator tvit = tvvf->ValuesBegin ();
+
+
+  for (std::vector<std::vector<double> >::const_iterator toit = m_conversionMatrix.begin ();
+       toit != m_conversionMatrix.end ();
+       ++toit)
+    {
+      NS_ASSERT (tvit != tvvf->ValuesEnd ());
+      Values::const_iterator fvit = fvvf->ConstValuesBegin ();
+
+      double sum = 0;
+      for (std::vector<double>::const_iterator fromit = toit->begin ();
+           fromit != toit->end ();
+           ++fromit)
+        {
+          NS_ASSERT (fvit != fvvf->ConstValuesEnd ());
+          sum += (*fvit) * (*fromit);
+          ++fvit;
+        }
+      *tvit = sum;
+      ++tvit;
+    }
+
+  return tvvf;
+}
+
+
+
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-converter.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,93 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_CONVERTER_H
+#define SPECTRUM_CONVERTER_H
+
+#include <ns3/spectrum-value.h>
+
+
+namespace ns3 {
+
+/**
+ * Class which implements a converter between SpectrumValue which are
+ * defined over different SpectrumModel. In more formal terms, this class
+ * allows conversion between different function spaces. In practical
+ * terms, this allows you to mix different spectrum representation
+ * within the same channel, such as a device using a coarse spectrum
+ * representation (e.g., one frequency for each IEEE 802.11 channel)
+ * and devices using a finer representation (e.g., one frequency for
+ * each OFDM subcarrier).
+ *
+ */
+class SpectrumConverter : public SimpleRefCount<SpectrumConverter>
+{
+public:
+  /**
+   * Create a SpectrumConverter class that will be able to convert ValueVsFreq
+   * instances defined over one SpectrumModel to corresponding ValueVsFreq
+   * instances defined over a diffent SpectrumModel
+   *
+   * @param fromSpectrumModel the SpectrumModel to convert from
+   * @param toSpectrumModel the SpectrumModel to convert to
+   */
+  SpectrumConverter (Ptr<const SpectrumModel> fromSpectrumModel, Ptr<const SpectrumModel> toSpectrumModel);
+
+  SpectrumConverter ();
+  
+
+
+  /**
+   * Convert a particular ValueVsFreq instance to
+   *
+   * @param vvf the ValueVsFreq instance to be converted
+   *
+   * @return the converted version of the provided ValueVsFreq
+   */
+  Ptr<SpectrumValue> Convert (Ptr<const SpectrumValue> vvf) const;
+
+
+private:
+  /**
+   * Calculate the coefficient for value conversion between elements
+   *
+   * @param from BandInfo to convert from
+   * @param to  BandInfo to convert to
+   *
+   * @return the fraction of the value of the "from" BandInfos that is
+   * mapped to the "to" BandInfo
+   */
+  double GetCoefficient (const BandInfo& from, const BandInfo& to) const;
+
+  std::vector<std::vector<double> > m_conversionMatrix; // /< matrix of conversion coefficients
+  Ptr<const SpectrumModel> m_fromSpectrumModel;  // /<  the SpectrumModel this SpectrumConverter instance can convert from
+  Ptr<const SpectrumModel> m_toSpectrumModel;    // /<  the SpectrumModel this SpectrumConverter instance can convert to
+
+};
+
+
+
+} // namespace ns3
+
+
+
+#endif /*  SPECTRUM_CONVERTER_H */
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-error-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,82 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "spectrum-error-model.h"
+
+#include <ns3/nstime.h>
+#include <ns3/log.h>
+
+NS_LOG_COMPONENT_DEFINE ("ShannonSpectrumErrorModel");
+
+namespace ns3 {
+
+SpectrumErrorModel::~SpectrumErrorModel ()
+{
+}
+
+void
+ShannonSpectrumErrorModel::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  SpectrumErrorModel::DoDispose ();
+}
+
+void
+ShannonSpectrumErrorModel::StartRx (Ptr<const Packet> p)
+{
+  NS_LOG_FUNCTION (this);
+  m_bytes = p->GetSize ();
+  NS_LOG_LOGIC ("bytes to deliver: " << m_bytes);
+  m_deliverableBytes = 0;
+}
+
+void
+ShannonSpectrumErrorModel::EvaluateChunk (const SpectrumValue& sinr, Time duration)
+{
+  NS_LOG_FUNCTION (this << sinr << duration);
+  SpectrumValue CapacityPerHertz = Log2 (1 + sinr);
+  double capacity = 0;
+
+  Bands::const_iterator bi = CapacityPerHertz.ConstBandsBegin ();
+  Values::const_iterator vi = CapacityPerHertz.ConstValuesBegin ();
+
+  while (bi != CapacityPerHertz.ConstBandsEnd ())
+    {
+      NS_ASSERT (vi != CapacityPerHertz.ConstValuesEnd ());
+      capacity += (bi->fh - bi->fl) * (*vi);
+      ++bi;
+      ++vi;
+    }
+  NS_ASSERT (vi == CapacityPerHertz.ConstValuesEnd ());
+  NS_LOG_LOGIC ("ChunkCapacity = " << capacity);
+  m_deliverableBytes += static_cast<uint32_t> (capacity * duration.GetSeconds () / 8);
+  NS_LOG_LOGIC ("DeliverableBytes = " << m_deliverableBytes);
+}
+
+
+bool
+ShannonSpectrumErrorModel::IsRxCorrect ()
+{
+  NS_LOG_FUNCTION (this);
+  return (m_deliverableBytes > m_bytes);
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-error-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,98 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#ifndef SPECTRUM_ERROR_MODEL_H
+#define SPECTRUM_ERROR_MODEL_H
+
+#include <ns3/spectrum-value.h>
+#include <ns3/ptr.h>
+#include <ns3/packet.h>
+#include <ns3/nstime.h>
+#include <ns3/object.h>
+
+namespace ns3 {
+
+
+
+class SpectrumErrorModel :  public Object
+{
+public:
+  virtual ~SpectrumErrorModel ();
+  virtual void StartRx (Ptr<const Packet> p) = 0;
+  virtual void EvaluateChunk (const SpectrumValue& sinr, Time duration) = 0;
+  virtual bool IsRxCorrect () = 0;
+};
+
+
+/**
+ * This class implements the error model described in this paper:
+ * N. Baldo and M. Miozzo, "Spectrum-aware Channel and PHY layer modeling
+ * for ns3", in Proceedings of International Workshop on Network
+ * Simulation Tools (NSTOOLS 2009), 19 October 2009, Pisa (Italy).
+ */
+class ShannonSpectrumErrorModel : public SpectrumErrorModel
+{
+protected:
+  virtual void DoDispose ();
+
+public:
+  // inherited from SpectrumErrorModel
+  void StartRx (Ptr<const Packet> p);
+  void EvaluateChunk (const SpectrumValue& sinr, Time duration);
+  bool IsRxCorrect ();
+
+private:
+  uint32_t m_bytes;
+  uint32_t m_deliverableBytes;
+
+};
+
+
+// class EffectiveSnrSpectrumErrorModel
+// {
+// public:
+
+//   enum ModulationAndCoding {
+//     BPSK_1_2,
+//     BPSK_1_3,
+//     QPSK_1_2,
+//     QPSK_1_3,
+//     QAM16_1_2,
+//     QAM64_1_2
+//   };
+
+//   void StartRx (uint32_t bytes);
+//   void EvaluateChunk (const SpectrumValue& sinr, Time duration);
+//   bool IsRxCorrect ();
+
+// protected:
+//   uint32_t m_bytes;
+//   uint32_t m_deliverableBytes;
+
+// };
+
+
+
+} // namespace ns3
+
+
+
+#endif /* SPECTRUM_ERROR_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-interference.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,145 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include "spectrum-interference.h"
+#include "spectrum-error-model.h"
+
+#include <ns3/simulator.h>
+#include <ns3/log.h>
+
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumInterference");
+
+namespace ns3 {
+
+
+SpectrumInterference::SpectrumInterference ()
+  : m_receiving (false),
+    m_rxSignal (0),
+    m_allSignals (0),
+    m_noise (0),
+    m_errorModel (0)
+{
+  NS_LOG_FUNCTION (this);
+}
+
+SpectrumInterference::~SpectrumInterference ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+void
+SpectrumInterference::DoDispose ()
+{
+  NS_LOG_FUNCTION (this);
+  m_rxSignal = 0;
+  m_allSignals = 0;
+  m_noise = 0;
+  m_errorModel = 0;  
+  Object::DoDispose ();
+}
+
+void
+SpectrumInterference::StartRx (Ptr<const Packet> p, Ptr<const SpectrumValue> rxPsd)
+{ 
+  NS_LOG_FUNCTION (this << p << *rxPsd);
+  m_rxSignal = rxPsd;
+  m_lastChangeTime = Now ();
+  m_receiving = true;
+  m_errorModel->StartRx (p);
+}
+
+
+bool
+SpectrumInterference::EndRx ()
+{
+  NS_LOG_FUNCTION (this);
+  ConditionallyEvaluateChunk ();
+  m_receiving = false;
+  return m_errorModel->IsRxCorrect ();
+}
+
+
+void
+SpectrumInterference::AddSignal (Ptr<const SpectrumValue> spd, const Time duration)
+{
+  NS_LOG_FUNCTION (this << *spd << duration);
+  DoAddSignal (spd);
+  Simulator::Schedule (duration, &SpectrumInterference::DoSubtractSignal, this, spd);
+}
+
+
+void
+SpectrumInterference::DoAddSignal  (Ptr<const SpectrumValue> spd)
+{ 
+  NS_LOG_FUNCTION (this << *spd);
+  ConditionallyEvaluateChunk ();
+  (*m_allSignals) += (*spd);
+  m_lastChangeTime = Now ();
+}
+
+void
+SpectrumInterference::DoSubtractSignal  (Ptr<const SpectrumValue> spd)
+{ 
+  NS_LOG_FUNCTION (this << *spd);
+  ConditionallyEvaluateChunk ();
+  (*m_allSignals) -= (*spd);
+  m_lastChangeTime = Now ();
+}
+
+
+void
+SpectrumInterference::ConditionallyEvaluateChunk ()
+{
+  NS_LOG_FUNCTION (this);
+  if (m_receiving && (Now () > m_lastChangeTime))
+    {
+      SpectrumValue sinr = (*m_rxSignal) / ((*m_allSignals) - (*m_rxSignal) + (*m_noise));
+      Time duration = Now () - m_lastChangeTime;
+      m_errorModel->EvaluateChunk (sinr, duration);
+    }
+}
+
+void
+SpectrumInterference::SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd)
+{
+  NS_LOG_FUNCTION (this << noisePsd);
+  m_noise = noisePsd;
+  // we can initialize m_allSignal only now, because earlier we
+  // didn't know what spectrum model was going to be used.
+  // we'll now create a zeroed SpectrumValue using the same
+  // SpectrumModel which is being specified for the noise.
+  m_allSignals = Create<SpectrumValue> (noisePsd->GetSpectrumModel ());
+}
+
+void
+SpectrumInterference::SetErrorModel (Ptr<SpectrumErrorModel> e)
+{
+  NS_LOG_FUNCTION (this << e);
+  m_errorModel = e;
+}
+
+
+
+
+} // namespace ns3
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-interference.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,141 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#ifndef SPECTRUM_INTERFERENCE_H
+#define SPECTRUM_INTERFERENCE_H
+
+#include <ns3/object.h>
+#include <ns3/packet.h>
+#include <ns3/nstime.h>
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+
+
+class SpectrumErrorModel;
+
+
+
+/**
+ * This class implements a gaussian interference model, i.e., all
+ * incoming signals are added to the total interference.
+ *
+ */
+class SpectrumInterference : public Object
+{
+public:
+  SpectrumInterference ();
+  virtual ~SpectrumInterference ();
+
+  /**
+   * set the SpectrumErrorModel to be used.
+   *
+   * @param e
+   */
+  void SetErrorModel (Ptr<SpectrumErrorModel> e);
+
+  /**
+   * notify that the PHY is starting a RX attempt
+   *
+   * @param p the packet corresponding to the signal being RX
+   * @param rxPsd the power spectral density of the signal being RX
+   */
+  void StartRx (Ptr<const Packet> p, Ptr<const SpectrumValue> rxPsd);
+
+
+  /**
+   * notify that the RX attempt has ended. The receiving PHY must call
+   * this method upon RX end in order to:
+   * 1) know if RX was successful or not
+   * 2) free up resources that might eventually be used for the
+   * calculation of interference. Note that for this reason this
+   * method must also be called when RX is aborted.
+   *
+   *
+   * @return true if RX was successful, false otherwise
+   */
+  bool EndRx ();
+
+
+  /**
+   * notify that a new signal is being perceived in the medium. This
+   * method is to be called for all incoming signal, regardless of
+   * wether they're useful signals or interferers.
+   *
+   * @param spd the power spectral density of the new signal
+   * @param duration the duration of the new signal
+   */
+  void AddSignal (Ptr<const SpectrumValue> spd, const Time duration);
+
+
+  /**
+   *
+   * @param noisePsd the Noise Power Spectral Density in power units
+   * (Watt, Pascal...) per Hz.
+   */
+  void SetNoisePowerSpectralDensity (Ptr<const SpectrumValue> noisePsd);
+
+
+protected:
+  
+  void DoDispose ();
+
+private:
+  void ConditionallyEvaluateChunk ();
+  void DoAddSignal  (Ptr<const SpectrumValue> spd);
+  void DoSubtractSignal  (Ptr<const SpectrumValue> spd);
+
+
+
+  bool m_receiving;
+
+  Ptr<const SpectrumValue> m_rxSignal; /**< stores the power spectral density of
+                                  * the signal whose RX is being
+                                  * attempted
+                                  */
+
+  Ptr<SpectrumValue> m_allSignals; /**< stores the spectral
+                                    * power density of the sum of incoming signals;
+                                    * does not include noise, includes the SPD of the signal being RX
+                                    */
+
+  Ptr<const SpectrumValue> m_noise;
+
+  Time m_lastChangeTime;     /**< the time of the last change in
+                                m_TotalPower */
+
+  Ptr<SpectrumErrorModel> m_errorModel;
+
+
+
+};
+
+
+
+} // namespace ns3
+
+
+
+
+
+#endif /* SPECTRUM_INTERFERENCE_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,51 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include <ns3/spectrum-model-300kHz-300GHz-log.h>
+
+namespace ns3 {
+
+
+Ptr<SpectrumModel> SpectrumModel300Khz300GhzLog;
+
+
+
+class static_SpectrumModel300Khz300GhzLog_initializer
+{
+public:
+  static_SpectrumModel300Khz300GhzLog_initializer ()
+  {
+
+    std::vector<double> freqs;
+    for (double f = 3e5; f < 3e11; f = f * 2)
+      {
+        freqs.push_back (f);
+      }
+    SpectrumModel300Khz300GhzLog = Create<SpectrumModel> (freqs);
+  }
+
+} static_SpectrumModel300Khz300GhzLog_initializer_instance;
+
+
+
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,38 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef FREQS_300KHZ_300GHZ_LOG_H
+#define FREQS_300KHZ_300GHZ_LOG_H
+
+
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+extern Ptr<SpectrumModel> SpectrumModel300Khz300GhzLog;
+
+
+}
+
+
+
+
+#endif /*  FREQS_300KHZ_300GHZ_LOG_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,53 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include <ns3/spectrum-model-ism2400MHz-res1MHz.h>
+
+namespace ns3 {
+
+
+Ptr<SpectrumModel> SpectrumModelIsm2400MhzRes1Mhz;
+
+
+
+class static_SpectrumModelIsm2400MhzRes1Mhz_initializer
+{
+public:
+  static_SpectrumModelIsm2400MhzRes1Mhz_initializer ()
+  {
+
+    std::vector<double> freqs;
+    for (int i = 0; i < 100; ++i)
+      {
+        freqs.push_back ((i + 2400) * 1e6);
+      }
+
+
+    SpectrumModelIsm2400MhzRes1Mhz = Create<SpectrumModel> (freqs);
+  }
+
+} static_SpectrumModelIsm2400MhzRes1Mhz_initializer_instance;
+
+
+
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,39 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef FREQS_ISM2400MHZ_RES1MHZ_H
+#define FREQS_ISM2400MHZ_RES1MHZ_H
+
+
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+extern Ptr<SpectrumModel> SpectrumModelIsm2400MhzRes1Mhz;
+
+
+}
+
+
+
+
+
+#endif /* FREQS_ISM2400MHZ_RES1MHZ_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,108 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil;  -*- */
+
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/spectrum-model.h>
+#include <math.h>
+#include <ns3/log.h>
+#include <ns3/assert.h>
+
+
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumModel");
+
+
+
+namespace ns3 {
+
+
+bool operator== (const SpectrumModel& lhs, const SpectrumModel& rhs)
+{
+  return (lhs.m_uid == rhs.m_uid);
+}
+
+SpectrumModelUid_t SpectrumModel::m_uidCount = 0;
+
+SpectrumModel::SpectrumModel (std::vector<double> centerFreqs)
+{
+  NS_ASSERT (centerFreqs.size () > 1);
+  m_uid = ++m_uidCount;
+
+  for (std::vector<double>::const_iterator it = centerFreqs.begin ();
+       it != centerFreqs.end ();
+       ++it)
+    {
+      BandInfo e;
+      e.fc = *it;
+      if (it ==  centerFreqs.begin ())
+        {
+          double delta = ((*(it + 1)) - (*it)) / 2;
+          e.fl =  *it - delta;
+          e.fh =  *it + delta;
+        }
+      else if (it == centerFreqs.end () - 1 )
+        {
+          double delta = ((*it) - (*(it - 1))) / 2;
+          e.fl  =  *it - delta;
+          e.fh =  *it + delta;
+        }
+      else
+        {
+          e.fl  = ((*it) + (*(it - 1))) / 2;
+          e.fh = ((*(it + 1)) + (*it)) / 2;
+        }
+      m_bands.push_back (e);
+    }
+}
+
+SpectrumModel::SpectrumModel (Bands bands)
+{
+  m_uid = ++m_uidCount;
+  NS_LOG_INFO ("creating new SpectrumModel, m_uid=" << m_uid);
+  m_bands = bands;
+}
+
+Bands::const_iterator
+SpectrumModel::Begin () const
+{
+  return m_bands.begin ();
+}
+
+Bands::const_iterator
+SpectrumModel::End () const
+{
+  return m_bands.end ();
+}
+
+size_t
+SpectrumModel::GetNumBands () const
+{
+  return m_bands.size ();
+}
+
+SpectrumModelUid_t
+SpectrumModel::GetUid () const
+{
+  return m_uid;
+}
+
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,114 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_MODEL_H
+#define SPECTRUM_MODEL_H
+
+#include <ns3/simple-ref-count.h>
+#include <vector>
+
+namespace ns3 {
+
+
+
+/**
+ * The building block of a SpectrumModel. This struct models
+ * a frequency band defined by the frequency interval [fl, fc] and
+ * with center frequency fc. Typically, the center frequency will be
+ * used for stuff such as propagation modeling, while the interval
+ * boundaries will be used for bandwidth calculation and for
+ * conversion between different SpectrumRepresentations.
+ *
+ */
+struct BandInfo
+{
+  double fl; ///< lower limit of subband
+  double fc; ///< center frequency
+  double fh; ///< upper limit of subband
+};
+
+
+typedef std::vector<BandInfo> Bands;
+typedef uint32_t SpectrumModelUid_t;
+
+/**
+ * Set of frequency values implementing the domain of the functions in
+ * the Function Space defined by SpectrumValue. Frequency values are in
+ * Hz. It is intended that frequency values are non-negative, though
+ * this is not enforced.
+ *
+ */
+class SpectrumModel : public SimpleRefCount<SpectrumModel>
+{
+public:
+  friend bool operator== (const SpectrumModel& lhs, const SpectrumModel& rhs);
+
+  /**
+   * This constructs a SpectrumModel based on a given set of frequencies,
+   * which is assumed to be sorted by increasing frequency. The lower
+   * (resp. upper) frequency band limit is determined as the mean value
+   * between the center frequency of the considered band and the
+   * center frequency of the adjacent lower (resp. upper) band.
+   *
+   * @param centerFreqs the vector of center frequencies.
+   *
+   * @return
+   */
+  SpectrumModel (std::vector<double> centerFreqs);
+
+
+  /**
+   * This construct a SpectrumModel based on the explicit values of
+   * center frequencies and boundaries of each subband.
+   *
+   * @param bands
+   *
+   * @return
+   */
+  SpectrumModel (Bands bands);
+
+  /**
+   *
+   * @return the number of frequencies in this SpectrumModel
+   */
+  size_t GetNumBands () const;
+
+
+  /**
+   *
+   * @return the unique id of this SpectrumModel
+   */
+  SpectrumModelUid_t GetUid () const;
+
+
+  Bands::const_iterator Begin () const;
+  Bands::const_iterator End () const;
+
+private:
+  Bands m_bands;         ///< actual definition of frequency bands
+                         /// within this SpectrumModel
+  SpectrumModelUid_t m_uid;        ///< unique id for a given set of frequencies
+  static SpectrumModelUid_t m_uidCount;    ///< counter to assign m_uids
+};
+
+
+} // namespace ns3
+
+#endif /* SPECTRUM_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-phy.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,52 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "spectrum-phy.h"
+#include <ns3/net-device.h>
+#include <ns3/mobility-model.h>
+#include <ns3/spectrum-value.h>
+#include <ns3/spectrum-channel.h>
+#include <ns3/log.h>
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumPhy");
+
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (SpectrumPhy);
+
+
+TypeId 
+SpectrumPhy::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::SpectrumPhy")
+    .SetParent<Object> ()
+    ;
+  return tid;
+}
+
+  
+SpectrumPhy::~SpectrumPhy ()
+{
+  NS_LOG_FUNCTION (this);
+}
+
+
+} // namespace
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-phy.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,124 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_PHY_H
+#define SPECTRUM_PHY_H
+
+
+#include <ns3/object.h>
+#include <ns3/nstime.h>
+#include <ns3/spectrum-type.h>
+
+namespace ns3 {
+
+class PacketBurst;
+class SpectrumChannel;
+class MobilityModel;
+class SpectrumValue;
+class SpectrumModel;
+class NetDevice;
+
+/**
+ * Abstract base class for Spectrum-aware PHY layers
+ *
+ */
+class SpectrumPhy  : public Object
+{
+
+public:
+
+
+  virtual ~SpectrumPhy ();
+  
+  static TypeId GetTypeId (void); 
+
+  /**
+   * set the associated NetDevice instance
+   *
+   * @param d the NetDevice instance
+   */
+  virtual void SetDevice (Ptr<Object> d) = 0;
+
+  /**
+   * get the associated NetDevice instance
+   *
+   * @return a Ptr to the associated NetDevice instance
+   */
+  virtual Ptr<Object> GetDevice () = 0;
+
+  /**
+   * Set the mobility model associated with this device.
+   *
+   * @param m the mobility model
+   */
+  virtual void SetMobility (Ptr<Object> m) = 0;
+
+  /**
+   * get the associated MobilityModel instance
+   *
+   * @return a Ptr to the associated NetDevice instance
+   */
+  virtual Ptr<Object> GetMobility () = 0;
+
+
+  /**
+   * Set the channel attached to this device.
+   *
+   * @param c the channel
+   */
+  virtual void SetChannel (Ptr<SpectrumChannel> c) = 0;
+
+  /** 
+   * 
+   * @return returns the SpectrumModel that this SpectrumPhy expects to be used
+   * for all SpectrumValues that are passed to StartRx. If 0 is
+   * returned, it means that any model will be accepted.
+   */
+  virtual Ptr<const SpectrumModel> GetRxSpectrumModel () const = 0;
+
+  /**
+   * Notify the SpectrumPhy instance of an incoming waveform
+   *
+   * @param p the PacketBurst associated with the incoming waveform
+   * @param rxPsd the Power Spectral Density of the incoming
+   * waveform. The units of the PSD are the same specified for SpectrumChannel::StartTx().
+   * @param st spectrum type
+   * @param duration the duration of the incoming waveform
+   */
+  virtual void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration) = 0;
+  
+
+};
+
+
+
+
+
+
+
+
+
+} // namespace ns3 
+
+
+
+
+
+#endif /* SPECTRUM_PHY_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-propagation-loss-model.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,75 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include "spectrum-propagation-loss-model.h"
+#include <ns3/log.h>
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumPropagationLossModel");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (SpectrumPropagationLossModel);
+
+SpectrumPropagationLossModel::SpectrumPropagationLossModel ()
+  : m_next (0)
+{
+}
+
+SpectrumPropagationLossModel::~SpectrumPropagationLossModel ()
+{
+}
+
+void
+SpectrumPropagationLossModel::DoDispose ()
+{
+  m_next = 0;
+}
+
+TypeId
+SpectrumPropagationLossModel::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::SpectrumPropagationLossModel")
+    .SetParent<Object> ()
+  ;
+  return tid;
+}
+
+
+void SpectrumPropagationLossModel::SetNext (Ptr<SpectrumPropagationLossModel> next)
+{
+  m_next = next;
+}
+
+
+Ptr<SpectrumValue>
+SpectrumPropagationLossModel::CalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
+                                                          Ptr<const MobilityModel> a,
+                                                          Ptr<const MobilityModel> b) const
+{
+  Ptr<SpectrumValue> rxPsd = DoCalcRxPowerSpectralDensity (txPsd, a, b);
+  if (m_next != 0)
+    {
+      rxPsd = m_next->DoCalcRxPowerSpectralDensity (rxPsd, a, b);
+    }
+  return rxPsd;
+}
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-propagation-loss-model.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,106 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_PROPAGATION_LOSS_MODEL_H
+#define SPECTRUM_PROPAGATION_LOSS_MODEL_H
+
+
+#include <ns3/object.h>
+#include <ns3/mobility-model.h>
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+
+
+/**
+ * \brief spectrum-aware propagation loss model
+ *
+ * Interface for propagation loss models to be adopted when
+ * transmissions are modeled with a power spectral density by means of
+ * the SpectrumValue class.
+ *
+ */
+class SpectrumPropagationLossModel : public Object
+{
+public:
+  SpectrumPropagationLossModel ();
+  virtual ~SpectrumPropagationLossModel ();
+
+  static TypeId GetTypeId ();
+
+
+  /**
+   * used to chain various instances of SpectrumPropagationLossModel
+   *
+   * @param next
+   */
+  void SetNext (Ptr<SpectrumPropagationLossModel> next);
+
+  /**
+   * This method is to be called to calculate
+   *
+   * @param txPsd the SpectrumValue representing the power spectral
+   * density of the transmission. Watt units are to be used for radio
+   * communications, and Pascal units for acoustic communications
+   * (e.g. underwater).
+   *
+   * @param a sender mobility
+   * @param b receiver mobility
+   *
+   * @return set of values vs frequency representing the received
+   * power in the same units used for the txPower parameter.
+   */
+  Ptr<SpectrumValue> CalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
+                                                 Ptr<const MobilityModel> a,
+                                                 Ptr<const MobilityModel> b) const;
+
+protected:
+  virtual void DoDispose ();
+  
+
+private:
+  /**
+   *
+   *
+   * @param txPsd set of values vs frequency representing the
+   * transmission power. See SpectrumChannel for details.
+   * @param a sender mobility
+   * @param b receiver mobility
+   *
+   * @return set of values vs frequency representing the received
+   * power in the same units used for the txPower parameter.
+   */
+  virtual Ptr<SpectrumValue> DoCalcRxPowerSpectralDensity (Ptr<const SpectrumValue> txPsd,
+                                                           Ptr<const MobilityModel> a,
+                                                           Ptr<const MobilityModel> b) const = 0;
+
+  Ptr<SpectrumPropagationLossModel> m_next;
+};
+
+
+
+
+
+
+} // namespace ns3
+
+#endif /* SPECTRUM_PROPAGATION_LOSS_MODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-type.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,95 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include "spectrum-type.h"
+#include <ns3/assert.h>
+
+
+namespace ns3 {
+
+
+
+std::vector<std::string> SpectrumTypeFactory::m_names;
+
+
+SpectrumType
+SpectrumTypeFactory::Create (std::string name)
+{
+  std::vector<std::string>::iterator it;
+  for (it = m_names.begin (); it != m_names.end (); ++it)
+    {
+      NS_ASSERT_MSG (name != *it, "name \"" << name << "\" already registered!");
+    }
+  m_names.push_back (name);
+  return SpectrumType (m_names.size () - 1);
+}
+
+
+
+std::string
+SpectrumTypeFactory::GetNameByUid (uint32_t uid)
+{
+  return m_names.at (uid);
+}
+
+
+
+SpectrumType::SpectrumType (uint32_t uid)
+  : m_uid (uid)
+{
+}
+
+uint32_t
+SpectrumType::GetUid () const
+{
+  return m_uid;
+}
+
+
+std::string
+SpectrumType::GetName () const
+{
+  return SpectrumTypeFactory::GetNameByUid (m_uid);
+}
+
+
+bool
+operator== (const SpectrumType& lhs, const SpectrumType& rhs)
+{
+  return (lhs.GetUid () == rhs.GetUid ());
+}
+
+
+bool
+operator!= (const SpectrumType& lhs, const SpectrumType& rhs)
+{
+  return (lhs.GetUid () != rhs.GetUid ());
+}
+
+std::ostream&
+operator<<  (std::ostream& os, const SpectrumType& rhs)
+{
+  os << rhs.GetName ();
+  return os;
+}
+
+
+} // namespace ns3
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-type.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,80 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_TYPE_H
+#define SPECTRUM_TYPE_H
+
+#include <ns3/log.h>
+#include <iostream>
+#include <vector>
+#include <string>
+
+
+namespace ns3 {
+
+
+/**
+ * This class represent a type of signal that can be transmitted by
+ * SpectrumPhy instances over a SpectrumChannel. By means of this
+ * class a SpectrumPhy is able to recognize which type of signals it
+ * is able to decode (i.e., receive) and which are to be considered
+ * only as a source of interference. Note that this distinction of
+ * signal types is an abstraction which is introduced only for
+ * simulation purposes: in the real world a device needs to infer
+ * whether a signal is of a known type by examining at properties of the
+ * signal, such as preamble, CRC fields, etc.
+ *
+ */
+class SpectrumType
+{
+  friend class SpectrumTypeFactory;
+
+public:
+  uint32_t GetUid () const;
+  std::string GetName () const;
+
+private:
+  SpectrumType (uint32_t m_uid);
+  uint32_t m_uid;
+};
+
+
+bool operator== (const SpectrumType& lhs, const SpectrumType& rhs);
+bool operator!= (const SpectrumType& lhs, const SpectrumType& rhs);
+std::ostream& operator<< (std::ostream& os, const SpectrumType& rhs);
+
+
+
+class SpectrumTypeFactory
+{
+
+public:
+  static SpectrumType Create (std::string name);
+  static std::string GetNameByUid (uint32_t uid);
+
+private:
+  static std::vector<std::string> m_names;
+};
+
+
+} // namespace ns3
+
+
+#endif /*  SPECTRUM_TYPE_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-value.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,673 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil;  -*- */
+
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/spectrum-value.h>
+#include <math.h>
+#include <ns3/log.h>
+
+
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumValue");
+
+
+namespace ns3 {
+
+
+SpectrumValue::SpectrumValue ()
+{ 
+}
+
+SpectrumValue::SpectrumValue (Ptr<const SpectrumModel> sof)
+  : m_spectrumModel (sof),
+    m_values (sof->GetNumBands ())
+{
+
+}
+
+double&
+SpectrumValue:: operator[] (size_t index)
+{
+  return m_values.at (index);
+}
+
+
+SpectrumModelUid_t
+SpectrumValue::GetSpectrumModelUid () const
+{
+  return m_spectrumModel->GetUid ();
+}
+
+
+Ptr<const SpectrumModel>
+SpectrumValue::GetSpectrumModel () const
+{
+  return m_spectrumModel;
+}
+
+
+Values::const_iterator
+SpectrumValue::ConstValuesBegin () const
+{
+  return m_values.begin ();
+}
+
+Values::const_iterator
+SpectrumValue::ConstValuesEnd () const
+{
+  return m_values.end ();
+}
+
+
+Values::iterator
+SpectrumValue::ValuesBegin ()
+{
+  return m_values.begin ();
+}
+
+Values::iterator
+SpectrumValue::ValuesEnd ()
+{
+  return m_values.end ();
+}
+
+Bands::const_iterator
+SpectrumValue::ConstBandsBegin () const
+{
+  return m_spectrumModel->Begin ();
+}
+
+Bands::const_iterator
+SpectrumValue::ConstBandsEnd () const
+{
+  return m_spectrumModel->End ();
+}
+
+
+void
+SpectrumValue::Add (const SpectrumValue& x)
+{
+  Values::iterator it1 = m_values.begin ();
+  Values::const_iterator it2 = x.m_values.begin ();
+
+  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
+
+  while (it1 != m_values.end ())
+    {
+      NS_ASSERT ( it2 != x.m_values.end ());
+      *it1 += *it2;
+      ++it1;
+      ++it2;
+    }
+}
+
+
+void
+SpectrumValue::Add (double s)
+{
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 += s;
+      ++it1;
+    }
+}
+
+
+
+void
+SpectrumValue::Subtract (const SpectrumValue& x)
+{
+  Values::iterator it1 = m_values.begin ();
+  Values::const_iterator it2 = x.m_values.begin ();
+
+  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
+
+  while (it1 != m_values.end ())
+    {
+      NS_ASSERT ( it2 != x.m_values.end ());
+      *it1 -= *it2;
+      ++it1;
+      ++it2;
+    }
+}
+
+
+void
+SpectrumValue::Subtract (double s)
+{
+  Add (-s);
+}
+
+
+
+void
+SpectrumValue::Multiply (const SpectrumValue& x)
+{
+  Values::iterator it1 = m_values.begin ();
+  Values::const_iterator it2 = x.m_values.begin ();
+
+  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
+
+  while (it1 != m_values.end ())
+    {
+      NS_ASSERT ( it2 != x.m_values.end ());
+      *it1 *= *it2;
+      ++it1;
+      ++it2;
+    }
+}
+
+
+void
+SpectrumValue::Multiply (double s)
+{
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 *= s;
+      ++it1;
+    }
+}
+
+
+
+
+void
+SpectrumValue::Divide (const SpectrumValue& x)
+{
+  Values::iterator it1 = m_values.begin ();
+  Values::const_iterator it2 = x.m_values.begin ();
+
+  NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
+
+  while (it1 != m_values.end ())
+    {
+      NS_ASSERT ( it2 != x.m_values.end ());
+      *it1 /= *it2;
+      ++it1;
+      ++it2;
+    }
+}
+
+
+void
+SpectrumValue::Divide (double s)
+{
+  NS_LOG_FUNCTION (this << s);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 /= s;
+      ++it1;
+    }
+}
+
+
+
+
+void
+SpectrumValue::ChangeSign ()
+{
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = -(*it1);
+      ++it1;
+    }
+}
+
+
+void
+SpectrumValue::ShiftLeft (int n)
+{
+  int i = 0;
+  while (i < (int) m_values.size () - n)
+    {
+      m_values.at (i) = m_values.at (i + n);
+      i++;
+    }
+  while (i < (int)m_values.size ())
+    {
+      m_values.at (i) = 0;
+      i++;
+    }
+}
+
+
+void
+SpectrumValue::ShiftRight (int n)
+{
+  int i = m_values.size () - 1;
+  while (i - n >= 0)
+    {
+      m_values.at (i) = m_values.at (i - n);
+      i = i - 1;
+    }
+  while (i >= 0)
+    {
+      m_values.at (i) = 0;
+      --i;
+    }
+}
+
+
+
+void
+SpectrumValue::Pow (double exp)
+{
+  NS_LOG_FUNCTION (this << exp);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = pow (*it1, exp);
+      ++it1;
+    }
+}
+
+
+void
+SpectrumValue::Exp (double base)
+{
+  NS_LOG_FUNCTION (this << base);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = pow (base, *it1);
+      ++it1;
+    }
+}
+
+
+void
+SpectrumValue::Log10 ()
+{
+  NS_LOG_FUNCTION (this);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = log10 (*it1);
+      ++it1;
+    }
+}
+
+void
+SpectrumValue::Log2 ()
+{
+  NS_LOG_FUNCTION (this);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = log2 (*it1);
+      ++it1;
+    }
+}
+
+
+void
+SpectrumValue::Log ()
+{
+  NS_LOG_FUNCTION (this);
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = log (*it1);
+      ++it1;
+    }
+}
+
+double
+Norm (const SpectrumValue& x)
+{
+  double s = 0;
+  Values::const_iterator it1 = x.ConstValuesBegin ();
+  while (it1 != x.ConstValuesEnd ())
+    {
+      s += (*it1) * (*it1);
+      ++it1;
+    }
+  return sqrt (s);
+}
+
+
+double
+Sum (const SpectrumValue& x)
+{
+  double s = 0;
+  Values::const_iterator it1 = x.ConstValuesBegin ();
+  while (it1 != x.ConstValuesEnd ())
+    {
+      s += (*it1);
+      ++it1;
+    }
+  return s;
+}
+
+
+
+double
+Prod (const SpectrumValue& x)
+{
+  double s = 0;
+  Values::const_iterator it1 = x.ConstValuesBegin ();
+  while (it1 != x.ConstValuesEnd ())
+    {
+      s *= (*it1);
+      ++it1;
+    }
+  return s;
+}
+
+
+Ptr<SpectrumValue>
+SpectrumValue::Copy () const
+{
+  Ptr<SpectrumValue> p = Create<SpectrumValue> (m_spectrumModel);
+  *p = *this;
+  return p;
+
+  //  return Copy<SpectrumValue> (*this)
+}
+
+
+std::ostream&
+operator << (std::ostream& os, const SpectrumValue& pvf)
+{
+  Values::const_iterator it1 = pvf.ConstValuesBegin ();
+  while (it1 != pvf.ConstValuesEnd ())
+    {
+      os << *it1 << " " ;
+      ++it1;
+    }
+  os << std::endl;
+  return os;
+}
+
+
+
+SpectrumValue
+operator+ (const SpectrumValue& lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = lhs;
+  res.Add (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator+ (const SpectrumValue& lhs, double rhs)
+{
+  SpectrumValue res = lhs;
+  res.Add (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator+ (double lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.Add (lhs);
+  return res;
+}
+
+
+SpectrumValue
+operator- (const SpectrumValue& lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.ChangeSign ();
+  res.Add (lhs);
+  return res;
+}
+
+
+
+SpectrumValue
+operator- (const SpectrumValue& lhs, double rhs)
+{
+  SpectrumValue res = lhs;
+  res.Subtract (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator- (double lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.Subtract (lhs);
+  return res;
+}
+
+SpectrumValue
+operator* (const SpectrumValue& lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = lhs;
+  res.Multiply (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator* (const SpectrumValue& lhs, double rhs)
+{
+  SpectrumValue res = lhs;
+  res.Multiply (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator* (double lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.Multiply (lhs);
+  return res;
+}
+
+
+SpectrumValue
+operator/ (const SpectrumValue& lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = lhs;
+  res.Divide (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator/ (const SpectrumValue& lhs, double rhs)
+{
+  SpectrumValue res = lhs;
+  res.Divide (rhs);
+  return res;
+}
+
+
+SpectrumValue
+operator/ (double lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.Divide (lhs);
+  return res;
+}
+
+
+SpectrumValue
+operator+ (const SpectrumValue& rhs)
+{
+  return rhs;
+}
+
+SpectrumValue
+operator- (const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.ChangeSign ();
+  return res;
+}
+
+
+SpectrumValue
+Pow (double lhs, const SpectrumValue& rhs)
+{
+  SpectrumValue res = rhs;
+  res.Exp (lhs);
+  return res;
+}
+
+
+SpectrumValue
+Pow (const SpectrumValue& lhs, double rhs)
+{
+  SpectrumValue res = lhs;
+  res.Pow (rhs);
+  return res;
+}
+
+
+SpectrumValue
+Log10 (const SpectrumValue& arg)
+{
+  SpectrumValue res = arg;
+  res.Log10 ();
+  return res;
+}
+
+SpectrumValue
+Log2 (const SpectrumValue& arg)
+{
+  SpectrumValue res = arg;
+  res.Log2 ();
+  return res;
+}
+
+SpectrumValue
+Log (const SpectrumValue& arg)
+{
+  SpectrumValue res = arg;
+  res.Log ();
+  return res;
+}
+
+SpectrumValue&
+SpectrumValue:: operator+= (const SpectrumValue& rhs)
+{
+  Add (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator-= (const SpectrumValue& rhs)
+{
+  Subtract (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator*= (const SpectrumValue& rhs)
+{
+  Multiply (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator/= (const SpectrumValue& rhs)
+{
+  Divide (rhs);
+  return *this;
+}
+
+
+SpectrumValue&
+SpectrumValue:: operator+= (double rhs)
+{
+  Add (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator-= (double rhs)
+{
+  Subtract (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator*= (double rhs)
+{
+  Multiply (rhs);
+  return *this;
+}
+
+SpectrumValue&
+SpectrumValue:: operator/= (double rhs)
+{
+  Divide (rhs);
+  return *this;
+}
+
+
+SpectrumValue&
+SpectrumValue:: operator= (double rhs)
+{
+  Values::iterator it1 = m_values.begin ();
+
+  while (it1 != m_values.end ())
+    {
+      *it1 = rhs;
+      ++it1;
+    }
+  return *this;
+}
+
+
+
+SpectrumValue
+SpectrumValue:: operator<< (int n) const
+{
+  SpectrumValue res = *this;
+  res.ShiftLeft (n);
+  return res;
+}
+
+SpectrumValue
+SpectrumValue:: operator>> (int n) const
+{
+  SpectrumValue res = *this;
+  res.ShiftRight (n);
+  return res;
+}
+
+
+
+
+} // namespace ns3
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/spectrum-value.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,537 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef SPECTRUM_VALUE_H
+#define SPECTRUM_VALUE_H
+
+#include <ns3/ptr.h>
+#include <ns3/simple-ref-count.h>
+#include <ns3/spectrum-model.h>
+#include <ostream>
+#include <vector>
+
+namespace ns3 {
+
+
+typedef std::vector<double> Values;
+
+/**
+ * \brief Set of values corresponding to a given SpectrumModel
+ *
+ * This class implements a Function Space which can represent any
+ * function \f$ g: F \in {\sf
+ * R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}}^N \rightarrow {\sf R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}}  \f$
+ *
+ * Every instance of this class represent a particular function \f$ g(F) \f$.
+ * The domain of the function space, i.e., \f$ F \f$, is implemented by SetOfFreq.
+ * The codomain of the function space is implemented by SetOfValues
+ *
+ * To every possible value of \f$ F\f$ corresponds a different Function
+ * Space.
+ * Mathematical operations are defined in this Function Space; these
+ * operations are implemented by means of operator overloading.
+ *
+ * The intended use of this class is to represent frequency-dependent
+ * things, such as power spectral densities, frequency-dependent
+ * propagation losses, spectral masks, etc.
+ */
+class SpectrumValue : public SimpleRefCount<SpectrumValue>
+{
+public:
+  /**
+   * @brief SpectrumValue constructor
+   *
+   * @param sm pointer to the SpectrumModel which implements the set of frequencies to which the values
+   * will be referring.
+   *
+   * @warning the intended use if that sm points to a static object
+   * which will be there for the whole simulation. This is reasonable
+   * since the set of frequencies which are to be used in the
+   * simulation is normally known before the simulation starts. Make
+   * sure that the SpectrumModel instance which sm points to has already been
+   * initialized by the time this method is invoked. The main reason is
+   * that if you initialize the SpectrumModel instance afterwards, and
+   * the memory for the underlying std::vector gets reallocated, then
+   * sm will not be a valid reference anymore. Another reason is that
+   * m_values could end up having the wrong size.
+   */
+  SpectrumValue (Ptr<const SpectrumModel> sm);
+
+
+  SpectrumValue ();
+  
+
+  /**
+   * Access value at given frequency index
+   *
+   * @param index the given frequency index
+   *
+   * @return reference to the value
+   */
+  double& operator[] (size_t index);
+
+
+
+  /**
+   *
+   * @return the uid of the embedded SpectrumModel
+   */
+  SpectrumModelUid_t GetSpectrumModelUid () const;
+
+
+  /**
+   *
+   * @return the  embedded SpectrumModel
+   */
+  Ptr<const SpectrumModel> GetSpectrumModel () const;
+
+
+  /**
+   *
+   *
+   * @return a const iterator pointing to the beginning of the embedded SpectrumModel
+   */
+  Bands::const_iterator ConstBandsBegin () const;
+
+  /**
+   *
+   *
+   * @return a const iterator pointing to the end of the embedded SpectrumModel
+   */
+  Bands::const_iterator ConstBandsEnd () const;
+
+
+  /**
+   *
+   *
+   * @return a const iterator pointing to the beginning of the embedded SpectrumModel
+   */
+  Values::const_iterator ConstValuesBegin () const;
+
+  /**
+   *
+   *
+   * @return a const iterator pointing to the end of the embedded SpectrumModel
+   */
+  Values::const_iterator ConstValuesEnd () const;
+
+  /**
+   *
+   *
+   * @return an iterator pointing to the beginning of the embedded SpectrumModel
+   */
+  Values::iterator ValuesBegin ();
+
+  /**
+   *
+   *
+   * @return an iterator pointing to the end of the embedded SpectrumModel
+   */
+  Values::iterator ValuesEnd ();
+
+
+
+  /**
+   *  addition operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs + rhs
+   */
+  friend SpectrumValue operator+ (const SpectrumValue& lhs, const SpectrumValue& rhs);
+
+
+  /**
+   *  addition operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs + rhs
+   */
+  friend SpectrumValue operator+ (const SpectrumValue& lhs, double rhs);
+
+  /**
+   *  addition operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs + rhs
+   */
+  friend SpectrumValue operator+ (double lhs, const SpectrumValue& rhs);
+
+
+  /**
+   *  subtraction operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs - rhs
+   */
+  friend SpectrumValue operator- (const SpectrumValue& lhs, const SpectrumValue& rhs);
+
+  /**
+   *  subtraction operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs - rhs
+   */
+  friend SpectrumValue operator- (const SpectrumValue& lhs, double rhs);
+
+  /**
+   *  subtraction operator
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs - rhs
+   */
+  friend SpectrumValue operator- (double lhs, const SpectrumValue& rhs);
+
+  /**
+   *  multiplication component-by-component (Schur product)
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs * rhs
+   */
+  friend SpectrumValue operator* (const SpectrumValue& lhs, const SpectrumValue& rhs);
+
+  /**
+   *  multiplication by a scalar
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs * rhs
+   */
+  friend SpectrumValue operator* (const SpectrumValue& lhs, double rhs);
+
+  /**
+   *  multiplication of a scalar
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs * rhs
+   */
+  friend SpectrumValue operator* (double lhs, const SpectrumValue& rhs);
+
+  /**
+   *  division component-by-component
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of lhs / rhs
+   */
+  friend SpectrumValue operator/ (const SpectrumValue& lhs, const SpectrumValue& rhs);
+
+  /**
+   * division by a scalar
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of *this / rhs
+   */
+  friend SpectrumValue operator/ (const SpectrumValue& lhs, double rhs);
+
+  /**
+   * division of a scalar
+   *
+   * @param lhs Left Hand Side of the operator
+   * @param rhs Right Hand Side of the operator
+   *
+   * @return the value of *this / rhs
+   */
+  friend SpectrumValue operator/ (double lhs, const SpectrumValue& rhs);
+
+  /**
+   * unary plus operator
+   *
+   *
+   * @return the value of *this
+   */
+  friend SpectrumValue operator+ (const SpectrumValue& rhs);
+
+  /**
+   * unary minus operator
+   *
+   *
+   * @return the value of - *this
+   */
+  friend SpectrumValue operator- (const SpectrumValue& rhs);
+
+
+  /**
+   * left shift operator
+   *
+   * @param n position to shift
+   *
+   * @return the value of *this left shifted by n positions. In other
+   * words, the function of the set of frequencies represented by
+   * *this is left-shifted in frequency by n positions.
+   */
+  SpectrumValue operator<< (int n) const;
+
+  /**
+    * right shift operator
+    *
+    * @param n position to shift
+    *
+    * @return the value of *this right shifted by n positions. In other
+    * words, the function of the set of frequencies represented by
+    * *this is left-shifted in frequency by n positions.
+    */
+  SpectrumValue operator>> (int n) const;
+
+
+
+  /**
+   * Add the Right Hand Side of the operator to *this, component by component
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return a reference to *this
+   */
+  SpectrumValue& operator+= (const SpectrumValue& rhs);
+
+  /**
+   * Subtract the Right Hand Side of the operator from *this, component by component
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return a reference to *this
+   */
+  SpectrumValue& operator-= (const SpectrumValue& rhs);
+
+  /**
+   * Multiply *this by the Right Hand Side of the operator, component by component
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return  a reference to *this
+   */
+  SpectrumValue& operator*= (const SpectrumValue& rhs);
+
+  /**
+   * Divide *this by the Right Hand Side of the operator, component by component
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return  a reference to *this
+   */
+  SpectrumValue& operator/= (const SpectrumValue& rhs);
+
+  /**
+   * Add the value of the Right Hand Side of the operator to all
+   * components of *this
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return a reference to *this
+   */
+  SpectrumValue& operator+= (double rhs);
+
+  /**
+   * Subtract the value of the Right Hand Side of the operator from all
+   * components of *this
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return a reference to *this
+   */
+  SpectrumValue& operator-= (double rhs);
+
+  /**
+   * Multiply every component of *this by the value of the Right Hand
+   * Side of the operator
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return  a reference to *this
+   */
+  SpectrumValue& operator*= (double rhs);
+
+  /**
+   * Divide every component of *this by the value of the Right Hand
+   * Side of the operator
+   *
+   * @param rhs the Right Hand Side
+   *
+   * @return  a reference to *this
+   */
+  SpectrumValue& operator/= (double rhs);
+
+
+  /**
+   * Assign each component of *this to the value of the Right Hand
+   * Side of the operator
+   *
+   * @param rhs
+   *
+   * @return
+   */
+  SpectrumValue& operator= (double rhs);
+
+
+
+  /**
+   *
+   * @param x the operand
+   *
+   * @return the euclidean norm, i.e., the sum of the squares of all
+   * the values in x
+   */
+  friend double Norm (const SpectrumValue& x);
+
+
+  /**
+   *
+   * @param x the operand
+   *
+   * @return the sum of all
+   * the values in x
+   */
+  friend double Sum (const SpectrumValue& x);
+
+
+  /**
+   * @param x the operand
+   *
+   * @return the product of all
+   * the values in x
+   */
+  friend double Prod (const SpectrumValue& x);
+
+
+  /**
+   *
+   *
+   * @param base the base
+   * @param exp  the exponent
+   *
+   * @return each value in base raised to the exponent
+   */
+  friend SpectrumValue Pow (const SpectrumValue& base, double exp);
+
+
+  /**
+   *
+   *
+   * @param base the base
+   * @param exp  the exponent
+   *
+   * @return the value in base raised to each value in the exponent
+   */
+  friend SpectrumValue Pow (double base, const SpectrumValue& exp);
+
+  /**
+   *
+   *
+   * @param arg the argument
+   *
+   * @return the logarithm in base 10 of all values in the argument
+   */
+  friend SpectrumValue Log10 (const SpectrumValue&  arg);
+
+
+  /**
+   *
+   *
+   * @param arg the argument
+   *
+   * @return the logarithm in base 2 of all values in the argument
+   */
+  friend SpectrumValue Log2 (const SpectrumValue&  arg);
+
+  /**
+   *
+   *
+   * @param arg the argument
+   *
+   * @return the logarithm in base e of all values in the argument
+   */
+  friend SpectrumValue Log (const SpectrumValue&  arg);
+
+  /**
+   *
+   * @return a Ptr to a copy of this instance
+   */
+  Ptr<SpectrumValue> Copy () const;
+
+
+
+private:
+  void Add (const SpectrumValue& x);
+  void Add (double s);
+  void Subtract (const SpectrumValue& x);
+  void Subtract (double s);
+  void Multiply (const SpectrumValue& x);
+  void Multiply (double s);
+  void Divide (const SpectrumValue& x);
+  void Divide (double s);
+  void ChangeSign ();
+  void ShiftLeft (int n);
+  void ShiftRight (int n);
+  void Pow (double exp);
+  void Exp (double base);
+  void Log10 ();
+  void Log2 ();
+  void Log ();
+
+  Ptr<const SpectrumModel> m_spectrumModel;
+
+
+/**
+ * Set of values which implement the codomain of the functions in
+ * the Function Space defined by SpectrumValue. There is no restriction
+ * on what these values represent (a transmission power density, a
+ * propagation loss, etc.).
+ *
+ */
+  Values m_values;
+
+
+};
+
+std::ostream& operator << (std::ostream& os, const SpectrumValue& pvf);
+
+double Norm (const SpectrumValue& x);
+double Sum (const SpectrumValue& x);
+double Prod (const SpectrumValue& x);
+SpectrumValue Pow (const SpectrumValue& base, double exp);
+SpectrumValue Pow (double base, const SpectrumValue& exp);
+SpectrumValue Log10 (const SpectrumValue&  arg);
+SpectrumValue Log2 (const SpectrumValue&  arg);
+SpectrumValue Log (const SpectrumValue&  arg);
+
+
+} // namespace ns3
+
+
+#endif /* SPECTRUM_VALUE_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/waveform-generator.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,228 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/waveform-generator.h>
+#include <ns3/object-factory.h>
+#include <ns3/log.h>
+#include <ns3/simulator.h>
+#include <ns3/double.h>
+#include <ns3/packet-burst.h>
+
+
+NS_LOG_COMPONENT_DEFINE ("WaveformGenerator");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (WaveformGenerator);
+
+WaveformGenerator::WaveformGenerator ()
+  : m_mobility (0),
+    m_netDevice (0),
+    m_channel (0),
+    m_txPowerSpectralDensity (0),
+    m_startTime (Seconds (0)),
+    m_active (false)
+{
+
+}
+
+
+WaveformGenerator::~WaveformGenerator ()
+{
+
+}
+
+
+void
+WaveformGenerator::DoDispose (void)
+{
+  NS_LOG_FUNCTION (this);
+  m_channel = 0;
+  m_netDevice = 0;
+  m_mobility = 0;
+}
+
+TypeId
+WaveformGenerator::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::WaveformGenerator")
+    .SetParent<SpectrumPhy> ()
+    .AddConstructor<WaveformGenerator> ()
+    .AddAttribute ("Period",
+                   "the period (=1/frequency)",
+                   TimeValue (Seconds (1.0)),
+                   MakeTimeAccessor (&WaveformGenerator::SetPeriod,
+                                     &WaveformGenerator::GetPeriod),
+                   MakeTimeChecker ())
+    .AddAttribute ("DutyCycle",
+                   "the duty cycle of the generator, i.e., the fraction of the period that is occupied by a signal",
+                   DoubleValue (0.5),
+                   MakeDoubleAccessor (&WaveformGenerator::SetDutyCycle,
+                                       &WaveformGenerator::GetDutyCycle),
+                   MakeDoubleChecker<double> ())
+    .AddTraceSource ("TxStart",
+                     "Trace fired when a new transmission is started",
+                     MakeTraceSourceAccessor (&WaveformGenerator::m_phyTxStartTrace))
+    .AddTraceSource ("TxEnd",
+                     "Trace fired when a previosuly started transmission is finished",
+                     MakeTraceSourceAccessor (&WaveformGenerator::m_phyTxEndTrace))
+    ;
+  return tid;
+}
+
+
+
+Ptr<Object>
+WaveformGenerator::GetDevice ()
+{
+  return m_netDevice;
+}
+
+
+Ptr<Object>
+WaveformGenerator::GetMobility ()
+{
+  return m_mobility;
+}
+
+
+Ptr<const SpectrumModel> 
+WaveformGenerator::GetRxSpectrumModel () const
+{
+  // this device is not interested in RX
+  return 0;
+}
+
+void
+WaveformGenerator::SetDevice (Ptr<Object> d)
+{
+  m_netDevice = d;
+}
+
+
+void
+WaveformGenerator::SetMobility (Ptr<Object> m)
+{
+  m_mobility = m;
+}
+
+
+void
+WaveformGenerator::SetChannel (Ptr<SpectrumChannel> c)
+{
+  NS_LOG_FUNCTION_NOARGS ();
+  m_channel = c;
+}
+
+
+
+void
+WaveformGenerator::StartRx (Ptr<PacketBurst> pb, Ptr <const SpectrumValue> rxPowerSpectrum, SpectrumType st, Time duration)
+{
+  NS_LOG_FUNCTION (pb << rxPowerSpectrum << duration);
+}
+
+
+SpectrumType
+WaveformGenerator::GetSpectrumType ()
+{
+  static SpectrumType st = SpectrumTypeFactory::Create ("GenericWaveform");
+  return st;
+}
+
+void
+WaveformGenerator::SetTxPowerSpectralDensity (Ptr<SpectrumValue> txPsd)
+{
+  NS_LOG_FUNCTION (this << *txPsd);
+  m_txPowerSpectralDensity = txPsd;
+}
+
+
+
+void
+WaveformGenerator::SetPeriod (Time period)
+{
+  m_period = period;
+}
+
+Time
+WaveformGenerator::GetPeriod () const
+{
+  return m_period;
+}
+
+
+
+void
+WaveformGenerator::SetDutyCycle (double dutyCycle)
+{
+  m_dutyCycle = Scalar (dutyCycle);
+}
+
+double WaveformGenerator::GetDutyCycle () const
+{
+  return m_dutyCycle.GetDouble ();
+}
+
+
+
+void
+WaveformGenerator::GenerateWaveform ()
+{
+  NS_LOG_FUNCTION (this);
+
+  Ptr<PacketBurst> pb = Create<PacketBurst> ();
+  Time duration = m_period * m_dutyCycle;
+  
+  NS_LOG_LOGIC ("generating waveform : " << *m_txPowerSpectralDensity);
+  m_phyTxStartTrace (0);
+  m_channel->StartTx (pb, m_txPowerSpectralDensity, GetSpectrumType (), duration, GetObject<SpectrumPhy> ());
+  
+  if (m_active)
+    {
+      NS_LOG_LOGIC ("scheduling next waveform");
+      Simulator::Schedule (m_period, &WaveformGenerator::GenerateWaveform, this);
+    }
+}
+
+
+void
+WaveformGenerator::Start ()
+{
+  NS_LOG_FUNCTION (this);
+  if (!m_active)
+    {
+      NS_LOG_LOGIC ("generator was not active, now starting");
+      m_active = true;
+      m_startTime = Now ();
+      Simulator::ScheduleNow (&WaveformGenerator::GenerateWaveform, this);
+    }
+}
+
+
+void
+WaveformGenerator::Stop ()
+{
+  NS_LOG_FUNCTION (this);  
+  m_active = false;
+}
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/waveform-generator.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,158 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef WAVEFORM_GENERATOR_H
+#define WAVEFORM_GENERATOR_H
+
+
+#include <ns3/spectrum-value.h>
+#include <ns3/mobility-model.h>
+#include <ns3/packet.h>
+#include <ns3/nstime.h>
+#include <ns3/net-device.h>
+#include <ns3/spectrum-phy.h>
+#include <ns3/spectrum-channel.h>
+#include <ns3/spectrum-type.h>
+#include <ns3/trace-source-accessor.h>
+
+namespace ns3 {
+
+
+
+/**
+ * Simple SpectrumPhy implementation that sends customizable waveform.
+ * The generated waveforms have a given Spectrum Power Density and
+ * duration (set with the SetResolution()) . The generator activates
+ * and deactivates periodically with a given period and with a duty
+ * cycle of 1/2.
+ */
+class WaveformGenerator : public SpectrumPhy
+{
+
+public:
+  WaveformGenerator ();
+  virtual ~WaveformGenerator ();
+
+  static TypeId GetTypeId (void);
+
+  // inherited from SpectrumPhy
+  void SetChannel (Ptr<SpectrumChannel> c);
+  void SetMobility (Ptr<Object> m);
+  void SetDevice (Ptr<Object> d);
+  Ptr<Object> GetMobility ();
+  Ptr<Object> GetDevice ();
+  Ptr<const SpectrumModel> GetRxSpectrumModel () const;
+  void StartRx (Ptr<PacketBurst> p, Ptr <const SpectrumValue> rxPsd, SpectrumType st, Time duration); 
+
+
+  /**
+   * Set the Power Spectral Density used for outgoing waveforms
+   *
+   * @param txs the Power Spectral Density
+   */
+  void SetTxPowerSpectralDensity (Ptr<SpectrumValue> txs);
+
+
+  /**
+   * Get the SpectrumType used by this PHY
+   *
+   * @return
+   */
+  SpectrumType GetSpectrumType ();
+
+
+
+  /**
+   * Set the period according to which the WaveformGenerator switches
+   * on and off
+   *
+   * @param period
+   */
+  void SetPeriod (Time period);
+
+
+  /** 
+   * 
+   * @return the value of the period according to which the WaveformGenerator switches
+   * on and off
+   */
+  Time GetPeriod () const;
+  
+
+  /** 
+   * 
+   * @param value the value of the duty cycle
+   */
+  void SetDutyCycle (double value);
+
+  /** 
+   *
+   * @return the value of the duty cycle
+   */
+  double GetDutyCycle () const;
+
+
+
+
+  /**
+   * Start the waveform generator
+   *
+   */
+  virtual void Start ();
+
+  /**
+   * Stop the waveform generator
+   *
+   */
+  virtual void Stop ();
+
+
+private:
+
+  virtual void DoDispose (void);
+
+  Ptr<Object> m_mobility;
+  Ptr<Object> m_netDevice;
+  Ptr<SpectrumChannel> m_channel;
+
+  virtual void GenerateWaveform ();
+
+  Ptr<SpectrumValue> m_txPowerSpectralDensity;
+  Time   m_period;
+  Scalar m_dutyCycle;
+  Time m_startTime;
+  bool m_active;
+
+  TracedCallback<Ptr<const Packet> > m_phyTxStartTrace;
+  TracedCallback<Ptr<const Packet> > m_phyTxEndTrace;
+};
+
+
+
+
+
+
+} // namespace ns3
+
+
+
+
+
+#endif /* WAVEFORM_GENERATOR_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/wifi-spectrum-value-helper.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,117 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+
+#include "wifi-spectrum-value-helper.h"
+
+namespace ns3 {
+
+  
+Ptr<SpectrumModel> g_WifiSpectrumModel5Mhz;
+
+WifiSpectrumValueHelper::~WifiSpectrumValueHelper ()
+{
+}
+
+WifiSpectrumValue5MhzFactory::~WifiSpectrumValue5MhzFactory ()
+{
+}
+
+class WifiSpectrumModel5MhzInitializer
+{
+public:
+  WifiSpectrumModel5MhzInitializer ()
+  {
+    Bands bands;
+    for (int i = -4; i < 13+7; i++)
+      {
+        BandInfo bi;
+        bi.fl = 2407.0e6 + i * 5.0e6;
+        bi.fh = 2407.0e6 + (i+1) * 5.0e6;
+        bi.fc = (bi.fl +  bi.fh)/2;
+        bands.push_back (bi);
+      }
+    g_WifiSpectrumModel5Mhz = Create<SpectrumModel> (bands);
+  }
+} g_WifiSpectrumModel5MhzInitializerInstance;
+
+
+
+Ptr<SpectrumValue> 
+WifiSpectrumValue5MhzFactory::CreateConstant (double v)
+{  
+  Ptr<SpectrumValue> c = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
+  (*c) = v;
+  return c;
+}
+
+
+Ptr<SpectrumValue> 
+WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity (double txPower, uint32_t channel)
+{  
+  Ptr<SpectrumValue> txPsd = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
+
+  // since the spectrum model has a resolution of 5 MHz, we model
+  // the transmitted signal with a constant density over a 20MHz
+  // bandwidth centered on the center frequency of the channel. The
+  // transmission power outside the transmission power density is
+  // calculated considering the transmit spectrum mask, see IEEE
+  // Std. 802.11-2007, Annex I
+
+  double txPowerDensity = txPower / 20e6; 
+
+  NS_ASSERT(channel >= 1);
+  NS_ASSERT(channel <= 13);
+
+  (*txPsd)[channel - 1] = txPowerDensity * 1e-4;      // -40dB
+  (*txPsd)[channel]     = txPowerDensity * 1e-4;      // -40dB
+  (*txPsd)[channel + 1] = txPowerDensity * 0.0015849; // -28dB
+  (*txPsd)[channel + 2] = txPowerDensity * 0.0015849; // -28dB
+  (*txPsd)[channel + 3] = txPowerDensity;
+  (*txPsd)[channel + 4] = txPowerDensity;
+  (*txPsd)[channel + 5] = txPowerDensity;
+  (*txPsd)[channel + 6] = txPowerDensity;
+  (*txPsd)[channel + 7] = txPowerDensity * 0.0015849; // -28dB
+  (*txPsd)[channel + 8] = txPowerDensity * 0.0015849; // -28dB
+  (*txPsd)[channel + 9] = txPowerDensity * 1e-4;      // -40dB
+  (*txPsd)[channel + 10] = txPowerDensity * 1e-4;      // -40dB
+
+  return txPsd;
+}
+
+
+Ptr<SpectrumValue> 
+WifiSpectrumValue5MhzFactory::CreateRfFilter (uint32_t channel)
+{  
+  Ptr<SpectrumValue> rf = Create <SpectrumValue> (g_WifiSpectrumModel5Mhz);
+
+  NS_ASSERT(channel >= 1);
+  NS_ASSERT(channel <= 13);
+
+  (*rf)[channel - 1] = 1;
+  (*rf)[channel    ] = 1;
+  (*rf)[channel + 1] = 1;
+  (*rf)[channel + 2] = 1;
+
+  return rf;
+}
+
+
+} //namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/model/wifi-spectrum-value-helper.h	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,95 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#ifndef WIFI_SPECTRUM_VALUE_HELPER_H
+#define WIFI_SPECTRUM_VALUE_HELPER_H
+
+
+#include <ns3/spectrum-value.h>
+
+namespace ns3 {
+
+
+
+/** 
+ * this abstract class defines the interface for interacting with all WifiSpectrumValue implementations.
+ *
+ */
+class WifiSpectrumValueHelper 
+{
+public:
+  virtual ~WifiSpectrumValueHelper ();
+  /*
+   *
+   * @param value the constant value
+   * 
+   * @return a Ptr to a newly created SpectrumValue instance which
+   * has a constant value for all frequencies
+   */
+  virtual Ptr<SpectrumValue> CreateConstant (double psd) = 0;
+
+  /*
+   *
+   * @param txPower the total TX power in W
+   * @param channel the number of the channel 
+   * 
+   * @return a Ptr to a newly created SpectrumValue instance which
+   * represents the TX Power Spectral Density  of a wifi device
+   * corresponding to the provided parameters
+   */
+  virtual Ptr<SpectrumValue> CreateTxPowerSpectralDensity (double txPower, uint32_t channel) = 0;
+
+  /*
+   *
+   * @param channel the number of the channel 
+   * 
+   * @return a Ptr to a newly created SpectrumValue instance which
+   * represents the frequency response of the RF filter which is used
+   * by a wifi device to receive signals when tuned to a particular channel
+   */
+  virtual Ptr<SpectrumValue> CreateRfFilter (uint32_t channel) = 0;
+  
+};
+
+
+
+/** 
+ * Implements WifiSpectrumValue for the 2.4 GHz ISM band only, with a
+ * 5 MHz spectrum resolution.
+ *
+ */
+class WifiSpectrumValue5MhzFactory
+{
+public:
+  virtual ~WifiSpectrumValue5MhzFactory ();
+  // inherited from WifiSpectrumValue
+  virtual Ptr<SpectrumValue> CreateConstant (double psd);
+  virtual Ptr<SpectrumValue> CreateTxPowerSpectralDensity (double txPower, uint32_t channel);
+  virtual Ptr<SpectrumValue> CreateRfFilter (uint32_t channel);
+
+};
+
+
+  
+} //namespace ns3
+
+
+
+#endif /*  WIFI_SPECTRUM_VALUE_HELPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/test/spectrum-interference-test.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,218 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/object.h>
+#include <ns3/spectrum-interference.h>
+#include <ns3/spectrum-error-model.h>
+#include <ns3/log.h>
+#include <ns3/test.h>
+#include <ns3/simulator.h>
+#include <ns3/packet.h>
+#include <ns3/ptr.h>
+#include <iostream>
+
+NS_LOG_COMPONENT_DEFINE ("SpectrumInterferenceTest");
+
+namespace ns3 {
+
+
+
+
+class SpectrumInterferenceTestCase : public TestCase
+{
+public:
+  SpectrumInterferenceTestCase (Ptr<SpectrumValue> s, uint32_t txBytes, bool rxCorrect, std::string name);
+  virtual ~SpectrumInterferenceTestCase ();
+  virtual void DoRun (void);
+  void RetrieveTestResult (SpectrumInterference* si);
+
+private:
+  Ptr<SpectrumValue> m_s;
+  uint32_t m_txBytes;
+  uint32_t m_rxCorrectKnownOutcome;
+  bool m_error;
+  Ptr<const SpectrumModel> m_mySpectrumModel;
+};
+
+
+
+SpectrumInterferenceTestCase::SpectrumInterferenceTestCase (Ptr<SpectrumValue> s, uint32_t txBytes, bool rxCorrect, std::string name)
+  : TestCase (name),
+    m_s (s),
+    m_txBytes (txBytes),
+    m_rxCorrectKnownOutcome (rxCorrect),
+    m_mySpectrumModel (s->GetSpectrumModel ())
+{
+}
+
+SpectrumInterferenceTestCase::~SpectrumInterferenceTestCase ()
+{
+}
+
+
+
+void
+SpectrumInterferenceTestCase::DoRun (void)
+{
+  Ptr<SpectrumValue> n = Create<SpectrumValue> (m_mySpectrumModel);
+  Ptr<SpectrumValue> i1 = Create<SpectrumValue> (m_mySpectrumModel);
+  Ptr<SpectrumValue> i2 = Create<SpectrumValue> (m_mySpectrumModel);
+  Ptr<SpectrumValue> i3 = Create<SpectrumValue> (m_mySpectrumModel);
+  Ptr<SpectrumValue> i4 = Create<SpectrumValue> (m_mySpectrumModel);
+
+
+  (*n)[0] = 5.000000000000e-19;
+  (*n)[1] = 4.545454545455e-19;
+
+  (*i1)[0] = 5.000000000000e-18;
+  (*i2)[0] = 5.000000000000e-16;
+  (*i3)[0] = 1.581138830084e-16;
+  (*i4)[0] = 7.924465962306e-17;
+  (*i1)[1] = 1.437398936440e-18;
+  (*i2)[1] = 5.722388235428e-16;
+  (*i3)[1] = 7.204059965732e-17;
+  (*i4)[1] = 5.722388235428e-17;
+
+
+  SpectrumInterference si;
+  si.SetErrorModel (CreateObject<ShannonSpectrumErrorModel> ());
+  si.SetNoisePowerSpectralDensity (n);
+
+  Time ts  = Seconds (1);
+  Time ds  = Seconds (1);
+  Time ti1 = Seconds (0);
+  Time di1 = Seconds (3);
+  Time ti2 = Seconds (0.7);
+  Time di2 = Seconds (1);
+  Time ti3 = Seconds (1.2);
+  Time di3 = Seconds (1);
+  Time ti4 = Seconds (1.5);
+  Time di4 = Seconds (0.1);
+
+  Simulator::Schedule (ts,  &SpectrumInterference::AddSignal, &si, m_s,  ds);
+  Simulator::Schedule (ti1, &SpectrumInterference::AddSignal, &si, i1, di1);
+  Simulator::Schedule (ti2, &SpectrumInterference::AddSignal, &si, i2, di2);
+  Simulator::Schedule (ti3, &SpectrumInterference::AddSignal, &si, i3, di3);
+  Simulator::Schedule (ti4, &SpectrumInterference::AddSignal, &si, i4, di4);
+
+  Ptr<Packet> p = Create<Packet> (m_txBytes);
+  Simulator::Schedule (ts,  &SpectrumInterference::StartRx, &si, p, m_s);
+  Simulator::Schedule (ts + ds,  &SpectrumInterferenceTestCase::RetrieveTestResult, this, &si);
+
+  Simulator::Run ();
+  // the above will return and after RetrieveTestResults have
+  // been called and after all signals have expired
+  Simulator::Destroy ();
+}
+
+
+
+void
+SpectrumInterferenceTestCase::RetrieveTestResult (SpectrumInterference* si)
+{
+
+  bool rxOk = si->EndRx ();
+  m_error =  (m_rxCorrectKnownOutcome != rxOk);
+
+  std::ostringstream actualStream;
+  actualStream << rxOk;
+  std::ostringstream limitStream;
+  limitStream << m_rxCorrectKnownOutcome;
+
+  NS_LOG_LOGIC ("actual=" << actualStream.str () << " limit=" << limitStream.str ());
+
+  if (m_error)
+    {
+      UpdateErrorStatus (m_error);
+      ReportTestFailure (std::string ("wrong result"),
+                         actualStream.str (),
+                         limitStream.str (),
+                         std::string ("no message"),
+                         __FILE__, __LINE__);
+    }
+
+}
+
+
+
+class SpectrumInterferenceTestSuite : public TestSuite
+{
+public:
+  SpectrumInterferenceTestSuite ();
+};
+
+SpectrumInterferenceTestSuite::SpectrumInterferenceTestSuite ()
+  : TestSuite ("spectrum-interference", UNIT)
+{
+
+  NS_LOG_INFO ("creating SpectrumInterferenceTestSuite");
+
+  Ptr<const SpectrumModel> m;
+
+  Bands bands;
+  struct BandInfo bi;
+
+  bi.fl = 2.400e9;
+  bi.fc = 2.410e9;
+  bi.fh = 2.420e9;
+  bands.push_back (bi);
+
+  bi.fl = 2.420e9;
+  bi.fc = 2.431e9;
+  bi.fh = 2.442e9;
+  bands.push_back (bi);
+
+  m = Create<SpectrumModel> (bands);
+
+
+  double b; // max deliverable bytes
+
+  const double e = 1e-5; // max tolerated relative error for
+                         // deliverable bytes
+
+  // Power Spectral Density of the signal of interest  = [-46 -48] dBm;
+  Ptr<SpectrumValue> s1  = Create<SpectrumValue> (m);
+  (*s1)[0] = 1.255943215755e-15;
+  (*s1)[1] = 7.204059965732e-16;
+  b = 10067205.5632012;
+  AddTestCase (new SpectrumInterferenceTestCase (s1,   1, 1,            "sdBm  = [-46 -48]  tx bytes: 1"));
+  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * 0.5 + 0.5), 1,   "sdBm  = [-46 -48]  tx bytes: b*0.5"));
+  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * (1 - e) + 0.5), 1, "sdBm  = [-46 -48]  tx bytes: b*(1-e)"));
+  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t> (b * (1 + e) + 0.5), 0, "sdBm  = [-46 -48]  tx bytes: b*(1+e)"));
+  AddTestCase (new SpectrumInterferenceTestCase (s1, static_cast<uint32_t>(b * 1.5 + 0.5), 0,   "sdBm  = [-46 -48]  tx bytes: b*1.5"));
+  AddTestCase (new SpectrumInterferenceTestCase (s1, 0xffffffff, 0,     "sdBm  = [-46 -48]  tx bytes: 2^32-1"));
+
+  // Power Spectral Density of the signal of interest  =  [-63 -61] dBm;
+  Ptr<SpectrumValue> s2  = Create<SpectrumValue> (m);
+  (*s2)[0] = 2.505936168136e-17;
+  (*s2)[1] = 3.610582885110e-17;
+  b = 882401.591840728;
+  AddTestCase (new SpectrumInterferenceTestCase (s2,   1, 1,            "sdBm  = [-63 -61]  tx bytes: 1"));
+  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * 0.5 + 0.5), 1,   "sdBm  = [-63 -61]  tx bytes: b*0.5"));
+  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * (1 - e) + 0.5), 1, "sdBm  = [-63 -61]  tx bytes: b*(1-e)"));
+  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * (1 + e) + 0.5), 0, "sdBm  = [-63 -61]  tx bytes: b*(1+e)"));
+  AddTestCase (new SpectrumInterferenceTestCase (s2, static_cast<uint32_t> (b * 1.5 + 0.5), 0,   "sdBm  = [-63 -61]  tx bytes: b*1.5"));
+  AddTestCase (new SpectrumInterferenceTestCase (s2, 0xffffffff, 0,     "sdBm  = [-63 -61]  tx bytes: 2^32-1"));
+
+}
+
+static SpectrumInterferenceTestSuite spectrumInterferenceTestSuite;
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/test/spectrum-value-test.cc	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,369 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2009 CTTC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Nicola Baldo <nbaldo@cttc.es>
+ */
+
+#include <ns3/object.h>
+#include <ns3/spectrum-value.h>
+#include <ns3/spectrum-converter.h>
+#include <ns3/log.h>
+#include <ns3/test.h>
+#include <iostream>
+#include <math.h>
+
+// NS_LOG_COMPONENT_DEFINE ("SpectrumValueTest");
+
+namespace ns3 {
+
+
+#define TOLERANCE 1e-6
+
+class SpectrumValueTestCase : public TestCase
+{
+public:
+  SpectrumValueTestCase (SpectrumValue a, SpectrumValue b, std::string name);
+  virtual ~SpectrumValueTestCase ();
+  virtual void DoRun (void);
+
+private:
+  bool MoreOrLessEqual (SpectrumValue x, SpectrumValue y);
+  SpectrumValue m_a;
+  SpectrumValue m_b;
+};
+
+
+
+SpectrumValueTestCase::SpectrumValueTestCase (SpectrumValue a, SpectrumValue b, std::string name)
+  : TestCase (name),
+    m_a (a),
+    m_b (b)
+{
+}
+
+SpectrumValueTestCase::~SpectrumValueTestCase ()
+{
+}
+
+
+bool
+SpectrumValueTestCase::MoreOrLessEqual (SpectrumValue x, SpectrumValue y)
+{
+  SpectrumValue z = x - y;
+  return (Norm (z) < TOLERANCE);
+}
+
+void
+SpectrumValueTestCase::DoRun (void)
+{
+  bool error = !MoreOrLessEqual (m_a, m_b);
+  std::cerr << m_a << std::endl
+            << m_b << std::endl;
+  if (error)
+    {
+      std::ostringstream actualStream;
+      actualStream << m_a;
+      std::ostringstream limitStream;
+      limitStream << m_b;
+      UpdateErrorStatus (error);
+      ReportTestFailure (std::string ("vector elements equal"),
+                         actualStream.str (),
+                         limitStream.str (),
+                         std::string ("no message"),
+                         __FILE__, __LINE__);
+    }
+}
+
+
+
+
+
+
+
+
+class SpectrumValueTestSuite : public TestSuite
+{
+public:
+  SpectrumValueTestSuite ();
+};
+
+SpectrumValueTestSuite::SpectrumValueTestSuite ()
+  : TestSuite ("spectrum-value", UNIT)
+{
+
+  // NS_LOG_INFO("creating SpectrumValueTestSuite");
+
+
+  std::vector<double> freqs;
+
+  for (int i = 1; i <= 5; i++)
+    {
+      freqs.push_back (i);
+    }
+
+  Ptr<SpectrumModel> f = Create<SpectrumModel> (freqs);
+
+  SpectrumValue v1 (f), v2 (f), v3 (f), v4 (f), v5 (f), v6 (f), v7 (f), v8 (f), v9 (f), v10 (f);
+  double nv1, nv2;
+
+  double doubleValue;
+
+
+  doubleValue =  1.12345600000000;
+
+  v1[0] =  0.700539792840;
+  v1[1] = -0.554277600423;
+  v1[2] =  0.750309319469;
+  v1[3] = -0.892299213192;
+  v1[4] =  0.987045234885;
+
+  v2[0] =  0.870441628737;
+  v2[1] =  0.271419263880;
+  v2[2] =  0.451557288312;
+  v2[3] =  0.968992859395;
+  v2[4] = -0.929186654705;
+
+  v3[0] =  1.570981421577;
+  v3[1] = -0.282858336543;
+  v3[2] =  1.201866607781;
+  v3[3] =  0.076693646203;
+  v3[4] =  0.057858580180;
+
+  v4[0] = -0.169901835897;
+  v4[1] = -0.825696864302;
+  v4[2] =  0.298752031158;
+  v4[3] = -1.861292072588;
+  v4[4] =  1.916231889590;
+
+  v5[0] =  0.609778998275;
+  v5[1] = -0.150441618292;
+  v5[2] =  0.338807641695;
+  v5[3] = -0.864631566028;
+  v5[4] = -0.917149259846;
+
+  v6[0] =  0.804809615846;
+  v6[1] = -2.042145397125;
+  v6[2] =  1.661603829438;
+  v6[3] = -0.920852207053;
+  v6[4] = -1.062267984465;
+
+  v7[0] =  1.823995792840;
+  v7[1] =  0.569178399577;
+  v7[2] =  1.873765319469;
+  v7[3] =  0.231156786808;
+  v7[4] =  2.110501234885;
+
+  v8[0] = -0.422916207160;
+  v8[1] = -1.677733600423;
+  v8[2] = -0.373146680531;
+  v8[3] = -2.015755213192;
+  v8[4] = -0.136410765115;
+
+  v9[0] =  0.787025633505;
+  v9[1] = -0.622706495860;
+  v9[2] =  0.842939506814;
+  v9[3] = -1.002458904856;
+  v9[4] =  1.108901891403;
+
+  v10[0] =  0.623557836569;
+  v10[1] = -0.493368320987;
+  v10[2] =  0.667858215604;
+  v10[3] = -0.794244913190;
+  v10[4] =  0.878579343459;
+
+  nv1 =  1.76957619675970;
+  nv2 =  1.68451062071783;
+
+
+
+
+  // std::cerr.precision(15);
+
+  // std::cerr<< nv1 << " "<<   v1.Norm() << std::endl;
+
+  SpectrumValue tv3 (f), tv4 (f), tv5 (f), tv6 (f);
+
+  tv3 = v1 + v2;
+  tv4 = v1 - v2;
+  tv5 = v1 * v2;
+  tv6 = v1 / v2;
+
+
+  AddTestCase (new SpectrumValueTestCase (tv3, v3, " tv3 = v1 + v2"));
+  AddTestCase (new SpectrumValueTestCase (tv4, v4, " tv4 = v1 - v2"));
+  AddTestCase (new SpectrumValueTestCase (tv5, v5, " tv5 = v1 * v2"));
+  AddTestCase (new SpectrumValueTestCase (tv6, v6, " tv6 = v1 / v2"));
+
+  // std::cerr << v6 << std::endl;
+  // std::cerr << tv6 << std::endl;
+
+
+  tv3 = v1;
+  tv4 = v1;
+  tv5 = v1;
+  tv6 = v1;
+
+  tv3 += v2;
+  tv4 -= v2;
+  tv5 *= v2;
+  tv6 /= v2;
+
+  AddTestCase (new SpectrumValueTestCase (tv3, v3, "tv3 += v2"));
+  AddTestCase (new SpectrumValueTestCase (tv4, v4, "tv4 -= v2"));
+  AddTestCase (new SpectrumValueTestCase (tv5, v5, "tv5 *= v2"));
+  AddTestCase (new SpectrumValueTestCase (tv6, v6, "tv6 /= v2"));
+
+  SpectrumValue tv7a (f), tv8a (f), tv9a (f), tv10a (f);
+  tv7a = v1 + doubleValue;
+  tv8a = v1 - doubleValue;
+  tv9a = v1 * doubleValue;
+  tv10a = v1 / doubleValue;
+  AddTestCase (new SpectrumValueTestCase (tv7a, v7, "tv7a = v1 + doubleValue"));
+  AddTestCase (new SpectrumValueTestCase (tv8a, v8, "tv8a = v1 - doubleValue"));
+  AddTestCase (new SpectrumValueTestCase (tv9a, v9, "tv9a = v1 * doubleValue"));
+  AddTestCase (new SpectrumValueTestCase (tv10a, v10, "tv10a = v1 / doubleValue"));
+
+  SpectrumValue tv7b (f), tv8b (f), tv9b (f), tv10b (f);
+  tv7b =  doubleValue + v1;
+  tv8b =  doubleValue - v1;
+  tv9b =  doubleValue * v1;
+  tv10b = doubleValue / v1;
+  AddTestCase (new SpectrumValueTestCase (tv7b, v7, "tv7b =  doubleValue + v1"));
+  AddTestCase (new SpectrumValueTestCase (tv8b, v8, "tv8b =  doubleValue - v1"));
+  AddTestCase (new SpectrumValueTestCase (tv9b, v9, "tv9b =  doubleValue * v1"));
+  AddTestCase (new SpectrumValueTestCase (tv10b, v10, "tv10b = doubleValue / v1"));
+
+
+
+
+
+  SpectrumValue v1ls3 (f), v1rs3 (f);
+  SpectrumValue tv1ls3 (f), tv1rs3 (f);
+
+  v1ls3[0] = v1[3];
+  v1ls3[1] = v1[4];
+  tv1ls3 = v1 << 3;
+  AddTestCase (new SpectrumValueTestCase (tv1ls3, v1ls3, "tv1ls3 = v1 << 3"));
+
+
+  v1rs3[3] = v1[0];
+  v1rs3[4] = v1[1];
+  tv1rs3 = v1 >> 3;
+  AddTestCase (new SpectrumValueTestCase (tv1rs3, v1rs3, "tv1rs3 = v1 >> 3"));
+
+
+}
+
+
+
+
+
+
+
+class SpectrumConverterTestSuite : public TestSuite
+{
+public:
+  SpectrumConverterTestSuite ();
+};
+
+SpectrumConverterTestSuite::SpectrumConverterTestSuite ()
+  : TestSuite ("spectrum-converter", UNIT)
+{
+  double f;
+
+
+  std::vector<double> f1;
+  for (f = 3; f <= 7; f += 2)
+    {
+      f1.push_back (f);
+    }
+  Ptr<SpectrumModel> sof1 = Create<SpectrumModel> (f1);
+
+
+
+  std::vector<double> f2;
+  for (f = 2; f <= 8; f += 1)
+    {
+      f2.push_back (f);
+    }
+  Ptr<SpectrumModel> sof2 = Create<SpectrumModel> (f2);
+
+
+
+  Ptr<SpectrumValue> res;
+
+
+  Ptr<SpectrumValue> v1 = Create<SpectrumValue> (sof1);
+  *v1 = 4;
+  SpectrumConverter c12 (sof1, sof2);
+  res = c12.Convert (v1);
+  SpectrumValue t12 (sof2);
+  t12 = 4;
+  t12[0] = 2;
+  t12[6] = 2;
+//   NS_LOG_LOGIC(*v1);
+//   NS_LOG_LOGIC(t12);
+//   NS_LOG_LOGIC(*res);
+
+  AddTestCase (new SpectrumValueTestCase (t12, *res, ""));
+  // TEST_ASSERT(MoreOrLessEqual(t12, *res));
+
+  Ptr<SpectrumValue> v2a = Create<SpectrumValue> (sof2);
+  *v2a = -2;
+  SpectrumConverter c21 (sof2, sof1);
+  res = c21.Convert (v2a);
+  SpectrumValue t21a (sof1);
+  t21a = -2;
+//   NS_LOG_LOGIC(*v2a);
+//   NS_LOG_LOGIC(t21a);
+//   NS_LOG_LOGIC(*res);
+  AddTestCase (new SpectrumValueTestCase (t21a, *res, ""));
+  // TEST_ASSERT(MoreOrLessEqual(t21a, *res));
+
+  Ptr<SpectrumValue> v2b = Create<SpectrumValue> (sof2);
+  (*v2b)[0] = 3;
+  (*v2b)[1] = 5;
+  (*v2b)[2] = 1;
+  (*v2b)[3] = 2;
+  (*v2b)[4] = 4;
+  (*v2b)[5] = 6;
+  (*v2b)[6] = 3;
+  res = c21.Convert (v2b);
+  SpectrumValue t21b (sof1);
+  t21b[0] = 3 * 0.25 + 5 * 0.5 + 1 * 0.25;
+  t21b[1] = 1 * 0.25 + 2 * 0.5 + 4 * 0.25;
+  t21b[2] = 4 * 0.25 + 6 * 0.5 + 3 * 0.25;
+//   NS_LOG_LOGIC(*v2b);
+//   NS_LOG_LOGIC(t21b);
+//   NS_LOG_LOGIC(*res);
+  AddTestCase (new SpectrumValueTestCase (t21b, *res, ""));
+
+
+}
+
+
+
+
+
+
+// static instance of test suites
+static SpectrumValueTestSuite g_SpectrumValueTestSuite;
+static SpectrumConverterTestSuite g_SpectrumConverterTestSuite;
+
+
+
+} // namespace ns3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/spectrum/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -0,0 +1,71 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+
+    module = bld.create_ns3_module('spectrum', ['core', 'node', 'propagation'])
+    module.source = [
+        'model/spectrum-model.cc',
+        'model/spectrum-value.cc',
+        'model/spectrum-converter.cc',
+        'model/spectrum-type.cc',
+        'model/spectrum-propagation-loss-model.cc',
+        'model/friis-spectrum-propagation-loss.cc',
+        'model/spectrum-phy.cc',
+        'model/spectrum-channel.cc',        
+        'model/single-model-spectrum-channel.cc',
+        'model/multi-model-spectrum-channel.cc',
+        'model/spectrum-interference.cc',
+        'model/spectrum-error-model.cc',
+        'model/spectrum-model-ism2400MHz-res1MHz.cc',
+        'model/spectrum-model-300kHz-300GHz-log.cc', 
+        'model/wifi-spectrum-value-helper.cc',
+        'model/waveform-generator.cc',
+        'model/spectrum-analyzer.cc',
+        'model/aloha-noack-mac-header.cc',
+        'model/aloha-noack-net-device.cc',
+        'model/half-duplex-ideal-phy.cc',
+        'model/non-communicating-net-device.cc',
+        'model/microwave-oven-spectrum-value-helper.cc',
+        'helper/spectrum-helper.cc',
+        'helper/adhoc-aloha-noack-ideal-phy-helper.cc',
+        'helper/waveform-generator-helper.cc',
+        'helper/spectrum-analyzer-helper.cc',
+        'test/spectrum-interference-test.cc',
+        'test/spectrum-value-test.cc',
+        ]
+    
+    headers = bld.new_task_gen('ns3header')
+    headers.module = 'spectrum'
+    headers.source = [
+        'model/spectrum-model.h',
+        'model/spectrum-value.h',
+        'model/spectrum-converter.h',
+        'model/spectrum-type.h',
+        'model/spectrum-propagation-loss-model.h',
+        'model/friis-spectrum-propagation-loss.h',
+        'model/spectrum-phy.h',
+        'model/spectrum-channel.h',
+        'model/single-model-spectrum-channel.h', 
+        'model/multi-model-spectrum-channel.h',
+        'model/spectrum-interference.h',
+        'model/spectrum-error-model.h',
+        'model/spectrum-model-ism2400MHz-res1MHz.h',
+        'model/spectrum-model-300kHz-300GHz-log.h',
+        'model/wifi-spectrum-value-helper.h',
+        'model/waveform-generator.h',       
+        'model/spectrum-analyzer.h',
+        'model/aloha-noack-mac-header.h',
+        'model/aloha-noack-net-device.h',
+        'model/half-duplex-ideal-phy.h',
+        'model/non-communicating-net-device.h',
+        'model/microwave-oven-spectrum-value-helper.h',
+        'helper/spectrum-helper.h',
+        'helper/adhoc-aloha-noack-ideal-phy-helper.h',
+        'helper/waveform-generator-helper.h',
+        'helper/spectrum-analyzer-helper.h',
+        ]
+
+    if (bld.env['ENABLE_EXAMPLES']):
+        bld.add_subdirs('examples')
+
+
--- a/src/wscript	Tue Feb 01 14:31:54 2011 -0500
+++ b/src/wscript	Tue Feb 08 13:08:45 2011 -0500
@@ -24,6 +24,7 @@
     'contrib',
     'node',
     'internet-stack',
+    'propagation',
     'devices/point-to-point',
     'devices/csma',
     'devices/emu',
@@ -47,7 +48,7 @@
     'contrib/stats',
     'applications/v4ping',
     'devices/uan',
-    'devices/spectrum',
+    'spectrum',
     'devices/mesh',   
     'devices/mesh/dot11s',
     'devices/mesh/flame',
--- a/test.py	Tue Feb 01 14:31:54 2011 -0500
+++ b/test.py	Tue Feb 08 13:08:45 2011 -0500
@@ -131,8 +131,8 @@
     ("examples/routing/static-routing-slash32", "True", "True"),
     ("examples/routing/aodv", "True", "True"),
 
-    ("examples/spectrum/adhoc-aloha-ideal-phy", "True", "True"),
-    ("examples/spectrum/adhoc-aloha-ideal-phy-with-microwave-oven", "True", "True"),
+    ("src/spectrum/examples/adhoc-aloha-ideal-phy", "True", "True"),
+    ("src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven", "True", "True"),
 
     ("examples/stats/wifi-example-sim", "True", "True"),