Merge with tip of ns-3-dev
authorJosh Pelkey <jpelkey@ece.gatech.edu>
Thu Jun 04 09:41:07 2009 -0400 (8 months ago)
changeset 4501c59049e93487
parent 4500 89befe2747c6
parent 4499 3b5ef83fae25
child 4502 049759dcee6e
Merge with tip of ns-3-dev
     1.1 --- a/bindings/python/ns3_module_common.py	Thu Jun 04 09:32:03 2009 -0400
     1.2 +++ b/bindings/python/ns3_module_common.py	Thu Jun 04 09:41:07 2009 -0400
     1.3 @@ -941,6 +941,14 @@
     1.4      cls.add_method('WriteWifiHeader', 
     1.5                     'void', 
     1.6                     [])
     1.7 +    ## pcap-writer.h: void ns3::PcapWriter::WriteWifiRadiotapHeader() [member function]
     1.8 +    cls.add_method('WriteWifiRadiotapHeader', 
     1.9 +                   'void', 
    1.10 +                   [])
    1.11 +    ## pcap-writer.h: void ns3::PcapWriter::WriteWifiPrismHeader() [member function]
    1.12 +    cls.add_method('WriteWifiPrismHeader', 
    1.13 +                   'void', 
    1.14 +                   [])
    1.15      ## pcap-writer.h: void ns3::PcapWriter::WritePppHeader() [member function]
    1.16      cls.add_method('WritePppHeader', 
    1.17                     'void', 
    1.18 @@ -949,6 +957,10 @@
    1.19      cls.add_method('WritePacket', 
    1.20                     'void', 
    1.21                     [param('ns3::Ptr< ns3::Packet const >', 'packet')])
    1.22 +    ## pcap-writer.h: void ns3::PcapWriter::WriteWifiMonitorPacket(ns3::Ptr<ns3::Packet const> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, bool isTx, double signalDbm, double noiseDbm) [member function]
    1.23 +    cls.add_method('WriteWifiMonitorPacket', 
    1.24 +                   'void', 
    1.25 +                   [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'channelFreqMhz'), param('uint32_t', 'rate'), param('bool', 'isShortPreamble'), param('bool', 'isTx'), param('double', 'signalDbm'), param('double', 'noiseDbm')])
    1.26      return
    1.27  
    1.28  def register_Ns3Trailer_methods(root_module, cls):
     2.1 --- a/bindings/python/ns3_module_core.py	Thu Jun 04 09:32:03 2009 -0400
     2.2 +++ b/bindings/python/ns3_module_core.py	Thu Jun 04 09:41:07 2009 -0400
     2.3 @@ -495,10 +495,10 @@
     2.4      cls.add_constructor([param('ns3::Names const &', 'arg0')])
     2.5      ## names.h: ns3::Names::Names() [constructor]
     2.6      cls.add_constructor([])
     2.7 -    ## names.h: static void ns3::Names::Add(std::string name, ns3::Ptr<ns3::Object> obj) [member function]
     2.8 +    ## names.h: static void ns3::Names::Add(std::string name, ns3::Ptr<ns3::Object> object) [member function]
     2.9      cls.add_method('Add', 
    2.10                     'void', 
    2.11 -                   [param('std::string', 'name'), param('ns3::Ptr< ns3::Object >', 'obj')], 
    2.12 +                   [param('std::string', 'name'), param('ns3::Ptr< ns3::Object >', 'object')], 
    2.13                     is_static=True)
    2.14      ## names.h: static void ns3::Names::Add(std::string path, std::string name, ns3::Ptr<ns3::Object> object) [member function]
    2.15      cls.add_method('Add', 
    2.16 @@ -2043,7 +2043,7 @@
    2.17      cls.add_method('ConnectWithoutContext', 
    2.18                     'void', 
    2.19                     [param('ns3::CallbackBase const &', 'cb')])
    2.20 -    ## traced-value.h: void ns3::TracedValue<unsigned int>::Connect(ns3::CallbackBase const & cb, std::basic_string<char,std::char_traits<char>,std::allocator<char> > path) [member function]
    2.21 +    ## traced-value.h: void ns3::TracedValue<unsigned int>::Connect(ns3::CallbackBase const & cb, std::string path) [member function]
    2.22      cls.add_method('Connect', 
    2.23                     'void', 
    2.24                     [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')])
    2.25 @@ -2051,7 +2051,7 @@
    2.26      cls.add_method('DisconnectWithoutContext', 
    2.27                     'void', 
    2.28                     [param('ns3::CallbackBase const &', 'cb')])
    2.29 -    ## traced-value.h: void ns3::TracedValue<unsigned int>::Disconnect(ns3::CallbackBase const & cb, std::basic_string<char,std::char_traits<char>,std::allocator<char> > path) [member function]
    2.30 +    ## traced-value.h: void ns3::TracedValue<unsigned int>::Disconnect(ns3::CallbackBase const & cb, std::string path) [member function]
    2.31      cls.add_method('Disconnect', 
    2.32                     'void', 
    2.33                     [param('ns3::CallbackBase const &', 'cb'), param('std::string', 'path')])
    2.34 @@ -2199,7 +2199,7 @@
    2.35      module.add_function('TypeNameGet', 
    2.36                          'std::string', 
    2.37                          [], 
    2.38 -                        template_parameters=['long'])
    2.39 +                        template_parameters=['long long'])
    2.40      ## type-name.h: extern std::string ns3::TypeNameGet() [free function]
    2.41      module.add_function('TypeNameGet', 
    2.42                          'std::string', 
    2.43 @@ -2219,7 +2219,7 @@
    2.44      module.add_function('TypeNameGet', 
    2.45                          'std::string', 
    2.46                          [], 
    2.47 -                        template_parameters=['unsigned long'])
    2.48 +                        template_parameters=['unsigned long long'])
    2.49      ## type-name.h: extern std::string ns3::TypeNameGet() [free function]
    2.50      module.add_function('TypeNameGet', 
    2.51                          'std::string', 
     3.1 --- a/bindings/python/ns3_module_helper.py	Thu Jun 04 09:32:03 2009 -0400
     3.2 +++ b/bindings/python/ns3_module_helper.py	Thu Jun 04 09:41:07 2009 -0400
     3.3 @@ -55,6 +55,8 @@
     3.4      module.add_class('YansWifiChannelHelper', allow_subclassing=False)
     3.5      ## yans-wifi-helper.h: ns3::YansWifiPhyHelper [class]
     3.6      module.add_class('YansWifiPhyHelper', allow_subclassing=False, parent=root_module['ns3::WifiPhyHelper'])
     3.7 +    ## yans-wifi-helper.h: ns3::YansWifiPhyHelper::PcapFormat [enumeration]
     3.8 +    module.add_enum('PcapFormat', ['PCAP_FORMAT_80211', 'PCAP_FORMAT_80211_PRISM', 'PCAP_FORMAT_80211_RADIOTAP'], outer_class=root_module['ns3::YansWifiPhyHelper'])
     3.9      ## nqos-wifi-mac-helper.h: ns3::NqosWifiMacHelper [class]
    3.10      module.add_class('NqosWifiMacHelper', allow_subclassing=False, parent=root_module['ns3::WifiMacHelper'])
    3.11      ## qos-wifi-mac-helper.h: ns3::QosWifiMacHelper [class]
    3.12 @@ -1160,36 +1162,34 @@
    3.13      cls.add_method('SetErrorRateModel', 
    3.14                     'void', 
    3.15                     [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()')])
    3.16 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid) [member function]
    3.17 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::SetPcapFormat(ns3::YansWifiPhyHelper::PcapFormat format) [member function]
    3.18 +    cls.add_method('SetPcapFormat', 
    3.19 +                   'void', 
    3.20 +                   [param('ns3::YansWifiPhyHelper::PcapFormat', 'format')])
    3.21 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, uint32_t nodeid, uint32_t deviceid) [member function]
    3.22      cls.add_method('EnablePcap', 
    3.23                     'void', 
    3.24 -                   [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')], 
    3.25 -                   is_static=True)
    3.26 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::Ptr<ns3::NetDevice> nd) [member function]
    3.27 +                   [param('std::string', 'filename'), param('uint32_t', 'nodeid'), param('uint32_t', 'deviceid')])
    3.28 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::Ptr<ns3::NetDevice> nd) [member function]
    3.29      cls.add_method('EnablePcap', 
    3.30                     'void', 
    3.31 -                   [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd')], 
    3.32 -                   is_static=True)
    3.33 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, std::string ndName) [member function]
    3.34 +                   [param('std::string', 'filename'), param('ns3::Ptr< ns3::NetDevice >', 'nd')])
    3.35 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, std::string ndName) [member function]
    3.36      cls.add_method('EnablePcap', 
    3.37                     'void', 
    3.38 -                   [param('std::string', 'filename'), param('std::string', 'ndName')], 
    3.39 -                   is_static=True)
    3.40 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function]
    3.41 +                   [param('std::string', 'filename'), param('std::string', 'ndName')])
    3.42 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::NetDeviceContainer d) [member function]
    3.43      cls.add_method('EnablePcap', 
    3.44                     'void', 
    3.45 -                   [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd')], 
    3.46 -                   is_static=True)
    3.47 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::NodeContainer n) [member function]
    3.48 +                   [param('std::string', 'filename'), param('ns3::NetDeviceContainer', 'd')])
    3.49 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcap(std::string filename, ns3::NodeContainer n) [member function]
    3.50      cls.add_method('EnablePcap', 
    3.51                     'void', 
    3.52 -                   [param('std::string', 'filename'), param('ns3::NodeContainer', 'n')], 
    3.53 -                   is_static=True)
    3.54 -    ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnablePcapAll(std::string filename) [member function]
    3.55 +                   [param('std::string', 'filename'), param('ns3::NodeContainer', 'n')])
    3.56 +    ## yans-wifi-helper.h: void ns3::YansWifiPhyHelper::EnablePcapAll(std::string filename) [member function]
    3.57      cls.add_method('EnablePcapAll', 
    3.58                     'void', 
    3.59 -                   [param('std::string', 'filename')], 
    3.60 -                   is_static=True)
    3.61 +                   [param('std::string', 'filename')])
    3.62      ## yans-wifi-helper.h: static void ns3::YansWifiPhyHelper::EnableAscii(std::ostream & os, uint32_t nodeid, uint32_t deviceid) [member function]
    3.63      cls.add_method('EnableAscii', 
    3.64                     'void', 
     4.1 --- a/bindings/python/ns3_module_node.py	Thu Jun 04 09:32:03 2009 -0400
     4.2 +++ b/bindings/python/ns3_module_node.py	Thu Jun 04 09:41:07 2009 -0400
     4.3 @@ -1443,10 +1443,10 @@
     4.4                     'ns3::Ipv4Address', 
     4.5                     [], 
     4.6                     is_const=True)
     4.7 -    ## ipv4-route.h: void ns3::Ipv4MulticastRoute::SetOrigin(ns3::Ipv4Address const group) [member function]
     4.8 +    ## ipv4-route.h: void ns3::Ipv4MulticastRoute::SetOrigin(ns3::Ipv4Address const origin) [member function]
     4.9      cls.add_method('SetOrigin', 
    4.10                     'void', 
    4.11 -                   [param('ns3::Ipv4Address const', 'group')])
    4.12 +                   [param('ns3::Ipv4Address const', 'origin')])
    4.13      ## ipv4-route.h: ns3::Ipv4Address ns3::Ipv4MulticastRoute::GetOrigin() const [member function]
    4.14      cls.add_method('GetOrigin', 
    4.15                     'ns3::Ipv4Address', 
     5.1 --- a/bindings/python/ns3_module_olsr.py	Thu Jun 04 09:32:03 2009 -0400
     5.2 +++ b/bindings/python/ns3_module_olsr.py	Thu Jun 04 09:41:07 2009 -0400
     5.3 @@ -102,13 +102,13 @@
     5.4      module.add_container('std::vector< ns3::olsr::MessageHeader::Hello::LinkMessage >', 'ns3::olsr::MessageHeader::Hello::LinkMessage', container_type='vector')
     5.5      module.add_container('std::vector< ns3::olsr::MessageHeader::Hna::Association >', 'ns3::olsr::MessageHeader::Hna::Association', container_type='vector')
     5.6      typehandlers.add_type_alias('std::vector< ns3::olsr::DuplicateTuple, std::allocator< ns3::olsr::DuplicateTuple > >', 'ns3::olsr::DuplicateSet')
     5.7 -    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
     5.8      typehandlers.add_type_alias('std::set< ns3::Ipv4Address, std::less< ns3::Ipv4Address >, std::allocator< ns3::Ipv4Address > >', 'ns3::olsr::MprSet')
     5.9      typehandlers.add_type_alias('std::vector< ns3::olsr::MprSelectorTuple, std::allocator< ns3::olsr::MprSelectorTuple > >', 'ns3::olsr::MprSelectorSet')
    5.10      typehandlers.add_type_alias('std::vector< ns3::olsr::MessageHeader, std::allocator< ns3::olsr::MessageHeader > >', 'ns3::olsr::MessageList')
    5.11      typehandlers.add_type_alias('std::vector< ns3::olsr::IfaceAssocTuple, std::allocator< ns3::olsr::IfaceAssocTuple > >', 'ns3::olsr::IfaceAssocSet')
    5.12      typehandlers.add_type_alias('std::vector< ns3::olsr::NeighborTuple, std::allocator< ns3::olsr::NeighborTuple > >', 'ns3::olsr::NeighborSet')
    5.13      typehandlers.add_type_alias('std::vector< ns3::olsr::TwoHopNeighborTuple, std::allocator< ns3::olsr::TwoHopNeighborTuple > >', 'ns3::olsr::TwoHopNeighborSet')
    5.14 +    typehandlers.add_type_alias('std::vector< ns3::olsr::TopologyTuple, std::allocator< ns3::olsr::TopologyTuple > >', 'ns3::olsr::TopologySet')
    5.15      typehandlers.add_type_alias('std::vector< ns3::olsr::LinkTuple, std::allocator< ns3::olsr::LinkTuple > >', 'ns3::olsr::LinkSet')
    5.16  
    5.17  def register_methods(root_module):
     6.1 --- a/bindings/python/ns3_module_wifi.py	Thu Jun 04 09:32:03 2009 -0400
     6.2 +++ b/bindings/python/ns3_module_wifi.py	Thu Jun 04 09:41:07 2009 -0400
     6.3 @@ -8,7 +8,7 @@
     6.4      ## wifi-preamble.h: ns3::WifiPreamble [enumeration]
     6.5      module.add_enum('WifiPreamble', ['WIFI_PREAMBLE_LONG', 'WIFI_PREAMBLE_SHORT'])
     6.6      ## wifi-phy-standard.h: ns3::WifiPhyStandard [enumeration]
     6.7 -    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_holland'])
     6.8 +    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_holland'])
     6.9      ## qos-utils.h: ns3::AccessClass [enumeration]
    6.10      module.add_enum('AccessClass', ['AC_VO', 'AC_VI', 'AC_BE', 'AC_BK', 'AC_UNDEF'])
    6.11      ## edca-txop-n.h: ns3::TypeOfStation [enumeration]
    6.12 @@ -26,7 +26,7 @@
    6.13      ## wifi-mode.h: ns3::WifiMode [class]
    6.14      module.add_class('WifiMode')
    6.15      ## wifi-mode.h: ns3::WifiMode::ModulationType [enumeration]
    6.16 -    module.add_enum('ModulationType', ['BPSK', 'QAM'], outer_class=root_module['ns3::WifiMode'])
    6.17 +    module.add_enum('ModulationType', ['BPSK', 'DBPSK', 'DQPSK', 'QAM'], outer_class=root_module['ns3::WifiMode'])
    6.18      ## wifi-mode.h: ns3::WifiModeFactory [class]
    6.19      module.add_class('WifiModeFactory')
    6.20      ## wifi-phy.h: ns3::WifiPhyListener [class]
    6.21 @@ -101,6 +101,8 @@
    6.22      module.add_class('EdcaTxopN', parent=root_module['ns3::Object'])
    6.23      ## error-rate-model.h: ns3::ErrorRateModel [class]
    6.24      module.add_class('ErrorRateModel', parent=root_module['ns3::Object'])
    6.25 +    ## propagation-loss-model.h: ns3::FixedRssLossModel [class]
    6.26 +    module.add_class('FixedRssLossModel', parent=root_module['ns3::PropagationLossModel'])
    6.27      ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
    6.28      module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
    6.29      ## ideal-wifi-manager.h: ns3::IdealWifiManager [class]
    6.30 @@ -111,6 +113,8 @@
    6.31      module.add_class('LogDistancePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
    6.32      ## msdu-aggregator.h: ns3::MsduAggregator [class]
    6.33      module.add_class('MsduAggregator', parent=root_module['ns3::Object'])
    6.34 +    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel [class]
    6.35 +    module.add_class('NakagamiPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
    6.36      ## nqap-wifi-mac.h: ns3::NqapWifiMac [class]
    6.37      module.add_class('NqapWifiMac', parent=root_module['ns3::WifiMac'])
    6.38      ## nqsta-wifi-mac.h: ns3::NqstaWifiMac [class]
    6.39 @@ -228,11 +232,13 @@
    6.40      register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop'])
    6.41      register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN'])
    6.42      register_Ns3ErrorRateModel_methods(root_module, root_module['ns3::ErrorRateModel'])
    6.43 +    register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
    6.44      register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
    6.45      register_Ns3IdealWifiManager_methods(root_module, root_module['ns3::IdealWifiManager'])
    6.46      register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
    6.47      register_Ns3LogDistancePropagationLossModel_methods(root_module, root_module['ns3::LogDistancePropagationLossModel'])
    6.48      register_Ns3MsduAggregator_methods(root_module, root_module['ns3::MsduAggregator'])
    6.49 +    register_Ns3NakagamiPropagationLossModel_methods(root_module, root_module['ns3::NakagamiPropagationLossModel'])
    6.50      register_Ns3NqapWifiMac_methods(root_module, root_module['ns3::NqapWifiMac'])
    6.51      register_Ns3NqstaWifiMac_methods(root_module, root_module['ns3::NqstaWifiMac'])
    6.52      register_Ns3OnoeWifiManager_methods(root_module, root_module['ns3::OnoeWifiManager'])
    6.53 @@ -267,6 +273,10 @@
    6.54      cls.add_method('Configure80211aParameters', 
    6.55                     'void', 
    6.56                     [])
    6.57 +    ## interference-helper.h: void ns3::InterferenceHelper::Configure80211bParameters() [member function]
    6.58 +    cls.add_method('Configure80211bParameters', 
    6.59 +                   'void', 
    6.60 +                   [])
    6.61      ## interference-helper.h: ns3::Time ns3::InterferenceHelper::GetEnergyDuration(double energyW) [member function]
    6.62      cls.add_method('GetEnergyDuration', 
    6.63                     'ns3::Time', 
    6.64 @@ -487,6 +497,16 @@
    6.65                     'ns3::WifiMode', 
    6.66                     [param('std::string', 'uniqueName'), param('bool', 'isMandatory'), param('uint32_t', 'bandwidth'), param('uint32_t', 'dataRate'), param('uint32_t', 'phyRate'), param('uint8_t', 'constellationSize')], 
    6.67                     is_static=True)
    6.68 +    ## wifi-mode.h: static ns3::WifiMode ns3::WifiModeFactory::CreateDbpsk(std::string uniqueName, bool isMandatory, uint32_t bandwidth, uint32_t dataRate, uint32_t phyRate) [member function]
    6.69 +    cls.add_method('CreateDbpsk', 
    6.70 +                   'ns3::WifiMode', 
    6.71 +                   [param('std::string', 'uniqueName'), param('bool', 'isMandatory'), param('uint32_t', 'bandwidth'), param('uint32_t', 'dataRate'), param('uint32_t', 'phyRate')], 
    6.72 +                   is_static=True)
    6.73 +    ## wifi-mode.h: static ns3::WifiMode ns3::WifiModeFactory::CreateDqpsk(std::string uniqueName, bool isMandatory, uint32_t bandwidth, uint32_t dataRate, uint32_t phyRate) [member function]
    6.74 +    cls.add_method('CreateDqpsk', 
    6.75 +                   'ns3::WifiMode', 
    6.76 +                   [param('std::string', 'uniqueName'), param('bool', 'isMandatory'), param('uint32_t', 'bandwidth'), param('uint32_t', 'dataRate'), param('uint32_t', 'phyRate')], 
    6.77 +                   is_static=True)
    6.78      return
    6.79  
    6.80  def register_Ns3WifiPhyListener_methods(root_module, cls):
    6.81 @@ -2013,6 +2033,26 @@
    6.82                     'ns3::WifiMode', 
    6.83                     [], 
    6.84                     is_static=True)
    6.85 +    ## wifi-phy.h: static ns3::WifiMode ns3::WifiPhy::Get1mbb() [member function]
    6.86 +    cls.add_method('Get1mbb', 
    6.87 +                   'ns3::WifiMode', 
    6.88 +                   [], 
    6.89 +                   is_static=True)
    6.90 +    ## wifi-phy.h: static ns3::WifiMode ns3::WifiPhy::Get2mbb() [member function]
    6.91 +    cls.add_method('Get2mbb', 
    6.92 +                   'ns3::WifiMode', 
    6.93 +                   [], 
    6.94 +                   is_static=True)
    6.95 +    ## wifi-phy.h: static ns3::WifiMode ns3::WifiPhy::Get5_5mbb() [member function]
    6.96 +    cls.add_method('Get5_5mbb', 
    6.97 +                   'ns3::WifiMode', 
    6.98 +                   [], 
    6.99 +                   is_static=True)
   6.100 +    ## wifi-phy.h: static ns3::WifiMode ns3::WifiPhy::Get11mbb() [member function]
   6.101 +    cls.add_method('Get11mbb', 
   6.102 +                   'ns3::WifiMode', 
   6.103 +                   [], 
   6.104 +                   is_static=True)
   6.105      ## wifi-phy.h: void ns3::WifiPhy::NotifyTxBegin(ns3::Ptr<ns3::Packet const> packet) [member function]
   6.106      cls.add_method('NotifyTxBegin', 
   6.107                     'void', 
   6.108 @@ -2037,10 +2077,14 @@
   6.109      cls.add_method('NotifyRxDrop', 
   6.110                     'void', 
   6.111                     [param('ns3::Ptr< ns3::Packet const >', 'packet')])
   6.112 -    ## wifi-phy.h: void ns3::WifiPhy::NotifyPromiscSniff(ns3::Ptr<ns3::Packet const> packet) [member function]
   6.113 -    cls.add_method('NotifyPromiscSniff', 
   6.114 -                   'void', 
   6.115 -                   [param('ns3::Ptr< ns3::Packet const >', 'packet')])
   6.116 +    ## wifi-phy.h: void ns3::WifiPhy::NotifyPromiscSniffRx(ns3::Ptr<ns3::Packet const> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm) [member function]
   6.117 +    cls.add_method('NotifyPromiscSniffRx', 
   6.118 +                   'void', 
   6.119 +                   [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'channelFreqMhz'), param('uint32_t', 'rate'), param('bool', 'isShortPreamble'), param('double', 'signalDbm'), param('double', 'noiseDbm')])
   6.120 +    ## wifi-phy.h: void ns3::WifiPhy::NotifyPromiscSniffTx(ns3::Ptr<ns3::Packet const> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble) [member function]
   6.121 +    cls.add_method('NotifyPromiscSniffTx', 
   6.122 +                   'void', 
   6.123 +                   [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('uint16_t', 'channelFreqMhz'), param('uint32_t', 'rate'), param('bool', 'isShortPreamble')])
   6.124      return
   6.125  
   6.126  def register_Ns3WifiRemoteStationManager_methods(root_module, cls):
   6.127 @@ -2972,6 +3016,25 @@
   6.128                     is_pure_virtual=True, is_const=True, is_virtual=True)
   6.129      return
   6.130  
   6.131 +def register_Ns3FixedRssLossModel_methods(root_module, cls):
   6.132 +    ## propagation-loss-model.h: static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
   6.133 +    cls.add_method('GetTypeId', 
   6.134 +                   'ns3::TypeId', 
   6.135 +                   [], 
   6.136 +                   is_static=True)
   6.137 +    ## propagation-loss-model.h: ns3::FixedRssLossModel::FixedRssLossModel() [constructor]
   6.138 +    cls.add_constructor([])
   6.139 +    ## propagation-loss-model.h: void ns3::FixedRssLossModel::SetRss(double rss) [member function]
   6.140 +    cls.add_method('SetRss', 
   6.141 +                   'void', 
   6.142 +                   [param('double', 'rss')])
   6.143 +    ## propagation-loss-model.h: double ns3::FixedRssLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
   6.144 +    cls.add_method('DoCalcRxPower', 
   6.145 +                   'double', 
   6.146 +                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
   6.147 +                   is_const=True, visibility='private', is_virtual=True)
   6.148 +    return
   6.149 +
   6.150  def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
   6.151      ## propagation-loss-model.h: static ns3::TypeId ns3::FriisPropagationLossModel::GetTypeId() [member function]
   6.152      cls.add_method('GetTypeId', 
   6.153 @@ -3122,6 +3185,21 @@
   6.154                     is_static=True)
   6.155      return
   6.156  
   6.157 +def register_Ns3NakagamiPropagationLossModel_methods(root_module, cls):
   6.158 +    ## propagation-loss-model.h: static ns3::TypeId ns3::NakagamiPropagationLossModel::GetTypeId() [member function]
   6.159 +    cls.add_method('GetTypeId', 
   6.160 +                   'ns3::TypeId', 
   6.161 +                   [], 
   6.162 +                   is_static=True)
   6.163 +    ## propagation-loss-model.h: ns3::NakagamiPropagationLossModel::NakagamiPropagationLossModel() [constructor]
   6.164 +    cls.add_constructor([])
   6.165 +    ## propagation-loss-model.h: double ns3::NakagamiPropagationLossModel::DoCalcRxPower(double txPowerDbm, ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
   6.166 +    cls.add_method('DoCalcRxPower', 
   6.167 +                   'double', 
   6.168 +                   [param('double', 'txPowerDbm'), param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
   6.169 +                   is_const=True, visibility='private', is_virtual=True)
   6.170 +    return
   6.171 +
   6.172  def register_Ns3NqapWifiMac_methods(root_module, cls):
   6.173      ## nqap-wifi-mac.h: static ns3::TypeId ns3::NqapWifiMac::GetTypeId() [member function]
   6.174      cls.add_method('GetTypeId', 
     7.1 --- a/src/common/pcap-writer.cc	Thu Jun 04 09:32:03 2009 -0400
     7.2 +++ b/src/common/pcap-writer.cc	Thu Jun 04 09:41:07 2009 -0400
     7.3 @@ -169,7 +169,9 @@
     7.4  }
     7.5  
     7.6  
     7.7 -void PcapWriter::WriteWifiMonitorPacket(Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, bool isTx, double signalDbm, double noiseDbm)
     7.8 +void PcapWriter::WriteWifiMonitorPacket(Ptr<const Packet> packet, uint16_t channelFreqMhz, 
     7.9 +                                        uint32_t rate, bool isShortPreamble, bool isTx, 
    7.10 +                                        double signalDbm, double noiseDbm)
    7.11  {  
    7.12    NS_LOG_FUNCTION (this << packet->GetSize() << channelFreqMhz << rate << isShortPreamble << isTx << signalDbm << noiseDbm);
    7.13  
    7.14 @@ -264,7 +266,7 @@
    7.15        // (which stands for Received Signal Strength Indicator) but it is
    7.16        // rather a Signal to Noise Ratio (SNR), of course in dB.
    7.17        // Anyway, in the end we calculate the value exactly as madwifi does.
    7.18 -      Write32(round(signalDbm - noiseDbm));
    7.19 +      Write32((uint32_t)round(signalDbm - noiseDbm));
    7.20  
    7.21        // SQ field not used. I would expect a PRISM_STATUS_ABSENT to be
    7.22        // needed here, but if you look at the prism header that madwifi
    7.23 @@ -278,12 +280,12 @@
    7.24        Write32(PRISM_DID_SIGNAL);
    7.25        Write16(PRISM_STATUS_PRESENT);
    7.26        Write16(PRISM_ITEM_LENGTH); 
    7.27 -      Write32(round(signalDbm));
    7.28 +      Write32((uint32_t)round(signalDbm));
    7.29  
    7.30        Write32(PRISM_DID_NOISE);
    7.31        Write16(PRISM_STATUS_PRESENT);
    7.32        Write16(PRISM_ITEM_LENGTH); 
    7.33 -      Write32(round(noiseDbm));
    7.34 +      Write32((uint32_t)round(noiseDbm));
    7.35              
    7.36        Write32(PRISM_DID_RATE);    
    7.37        Write16(PRISM_STATUS_PRESENT);
     8.1 --- a/src/common/pcap-writer.h	Thu Jun 04 09:32:03 2009 -0400
     8.2 +++ b/src/common/pcap-writer.h	Thu Jun 04 09:41:07 2009 -0400
     8.3 @@ -124,7 +124,9 @@
     8.4     * @param signalDbm signal power in dBm
     8.5     * @param noiseDbm  noise power in dBm
     8.6     */
     8.7 -  void WriteWifiMonitorPacket(Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, bool isTx, double signalDbm, double noiseDbm);
     8.8 +  void WriteWifiMonitorPacket(Ptr<const Packet> packet, uint16_t channelFreqMhz, 
     8.9 +                              uint32_t rate, bool isShortPreamble, bool isTx, 
    8.10 +                              double signalDbm, double noiseDbm);
    8.11  
    8.12  
    8.13  
     9.1 --- a/src/devices/wifi/msdu-aggregator.cc	Thu Jun 04 09:32:03 2009 -0400
     9.2 +++ b/src/devices/wifi/msdu-aggregator.cc	Thu Jun 04 09:41:07 2009 -0400
     9.3 @@ -44,33 +44,31 @@
     9.4    DeaggregatedMsdus set;
     9.5    
     9.6    AmsduSubframeHeader hdr;
     9.7 +  Ptr<Packet> extractedMsdu = Create<Packet> ();
     9.8    uint32_t maxSize = aggregatedPacket->GetSize ();
     9.9 -  // The worst condition is: two aggregated packets with no padding.
    9.10 -  // 28 bytes is the size of two Amsdu subframe headers.
    9.11 -  uint8_t *buffer = new uint8_t[maxSize-28];
    9.12 +  uint16_t extractedLength;
    9.13    uint32_t padding;
    9.14    uint32_t deserialized = 0;
    9.15  
    9.16    while (deserialized < maxSize)
    9.17     {
    9.18       deserialized += aggregatedPacket->RemoveHeader (hdr);
    9.19 -     deserialized += aggregatedPacket->CopyData (buffer, hdr.GetLength ());
    9.20 -     aggregatedPacket->RemoveAtStart (hdr.GetLength ());
    9.21 +     extractedLength = hdr.GetLength ();
    9.22 +     extractedMsdu = aggregatedPacket->CreateFragment (0, static_cast<uint32_t>(extractedLength));
    9.23 +     aggregatedPacket->RemoveAtStart (extractedLength);
    9.24 +     deserialized += extractedLength;
    9.25       
    9.26 -     padding = (4 - ((hdr.GetLength () + 14) %4 )) % 4;
    9.27 +     padding = (4 - ((extractedLength + 14) %4 )) % 4;
    9.28    
    9.29       if (padding > 0 && deserialized < maxSize)
    9.30         {
    9.31           aggregatedPacket->RemoveAtStart (padding);
    9.32           deserialized += padding;
    9.33         }
    9.34 -     //a new packet is created with the content of extracted msdu
    9.35 -     Ptr<Packet> p = Create<Packet> (buffer, hdr.GetLength ());
    9.36       
    9.37 -     std::pair<Ptr<Packet>, AmsduSubframeHeader> packetHdr (p,hdr);
    9.38 +     std::pair<Ptr<Packet>, AmsduSubframeHeader> packetHdr (extractedMsdu, hdr);
    9.39       set.push_back (packetHdr);
    9.40     }
    9.41 -  delete [] buffer;
    9.42    NS_LOG_INFO ("Deaggreated A-MSDU: extracted "<< set.size () << " MSDUs");
    9.43    return set;
    9.44  }
    10.1 --- a/src/devices/wifi/wifi-phy.h	Thu Jun 04 09:32:03 2009 -0400
    10.2 +++ b/src/devices/wifi/wifi-phy.h	Thu Jun 04 09:41:07 2009 -0400
    10.3 @@ -313,7 +313,8 @@
    10.4     * @param signalDbm signal power in dBm
    10.5     * @param noiseDbm  noise power in dBm
    10.6     */
    10.7 -  void NotifyPromiscSniffRx (Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm);
    10.8 +  void NotifyPromiscSniffRx (Ptr<const Packet> packet, uint16_t channelFreqMhz, uint32_t rate, bool isShortPreamble, 
    10.9 +                             double signalDbm, double noiseDbm);
   10.10  
   10.11    /** 
   10.12     * 
    11.1 --- a/src/helper/yans-wifi-helper.cc	Thu Jun 04 09:32:03 2009 -0400
    11.2 +++ b/src/helper/yans-wifi-helper.cc	Thu Jun 04 09:41:07 2009 -0400
    11.3 @@ -31,14 +31,16 @@
    11.4  
    11.5  namespace ns3 {
    11.6  
    11.7 -static void PcapSniffTxEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet, uint16_t channelFreqMhz,  uint32_t rate, bool isShortPreamble)
    11.8 +static void PcapSniffTxEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet, uint16_t channelFreqMhz,  
    11.9 +                              uint32_t rate, bool isShortPreamble)
   11.10  {
   11.11    const double unusedValue = 0;
   11.12    writer->WriteWifiMonitorPacket(packet, channelFreqMhz, rate, isShortPreamble, true, unusedValue, unusedValue); 
   11.13  }
   11.14  
   11.15  
   11.16 -static void PcapSniffRxEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet, uint16_t channelFreqMhz,  uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm)
   11.17 +static void PcapSniffRxEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet, uint16_t channelFreqMhz,  
   11.18 +                              uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm)
   11.19  {
   11.20    writer->WriteWifiMonitorPacket(packet, channelFreqMhz, rate, isShortPreamble, false, signalDbm, noiseDbm); 
   11.21  }