bug 274: bridge must detect compatibility of devices with bridging mode
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue Sep 02 11:28:03 2008 -0700 (17 months ago)
changeset 35844eb48239b4dc
parent 3583 b6cf80679b72
child 3585 0404af4cacf0
bug 274: bridge must detect compatibility of devices with bridging mode
bindings/python/ns3_module_bridge.py
bindings/python/ns3_module_contrib.py
bindings/python/ns3_module_csma.py
bindings/python/ns3_module_internet_stack.py
bindings/python/ns3_module_mobility.py
bindings/python/ns3_module_node.py
bindings/python/ns3_module_point_to_point.py
bindings/python/ns3_module_simulator.py
bindings/python/ns3_module_stats.py
bindings/python/ns3_module_wifi.py
src/devices/bridge/bridge-net-device.cc
src/devices/bridge/bridge-net-device.h
src/devices/csma/csma-net-device.cc
src/devices/csma/csma-net-device.h
src/devices/point-to-point/point-to-point-net-device.cc
src/devices/point-to-point/point-to-point-net-device.h
src/devices/wifi/wifi-net-device.cc
src/devices/wifi/wifi-net-device.h
src/node/net-device.h
src/node/node.cc
src/node/simple-net-device.cc
src/node/simple-net-device.h
     1.1 --- a/bindings/python/ns3_module_bridge.py	Tue Sep 02 10:45:06 2008 -0700
     1.2 +++ b/bindings/python/ns3_module_bridge.py	Tue Sep 02 11:28:03 2008 -0700
     1.3 @@ -182,8 +182,8 @@
     1.4                     'void', 
     1.5                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
     1.6                     is_virtual=True)
     1.7 -    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsPromiscuous() const [member function]
     1.8 -    cls.add_method('SupportsPromiscuous', 
     1.9 +    ## bridge-net-device.h: bool ns3::BridgeNetDevice::SupportsSendFrom() const [member function]
    1.10 +    cls.add_method('SupportsSendFrom', 
    1.11                     'bool', 
    1.12                     [], 
    1.13                     is_const=True, is_virtual=True)
     2.1 --- a/bindings/python/ns3_module_contrib.py	Tue Sep 02 10:45:06 2008 -0700
     2.2 +++ b/bindings/python/ns3_module_contrib.py	Tue Sep 02 11:28:03 2008 -0700
     2.3 @@ -7,14 +7,14 @@
     2.4      module.add_class('Gnuplot')
     2.5      ## event-garbage-collector.h: ns3::EventGarbageCollector [class]
     2.6      module.add_class('EventGarbageCollector')
     2.7 +    ## gtk-config-store.h: ns3::GtkConfigStore [class]
     2.8 +    module.add_class('GtkConfigStore')
     2.9      ## gnuplot.h: ns3::GnuplotDataset [class]
    2.10      module.add_class('GnuplotDataset')
    2.11      ## gnuplot.h: ns3::GnuplotDataset::Style [enumeration]
    2.12      module.add_enum('Style', ['LINES', 'POINTS', 'LINES_POINTS', 'DOTS', 'IMPULSES', 'STEPS', 'FSTEPS', 'HISTEPS'], outer_class=root_module['ns3::GnuplotDataset'])
    2.13      ## gnuplot.h: ns3::GnuplotDataset::ErrorBars [enumeration]
    2.14      module.add_enum('ErrorBars', ['NONE', 'X', 'Y', 'XY'], outer_class=root_module['ns3::GnuplotDataset'])
    2.15 -    ## gtk-config-store.h: ns3::GtkConfigStore [class]
    2.16 -    module.add_class('GtkConfigStore')
    2.17      ## config-store.h: ns3::ConfigStore [class]
    2.18      module.add_class('ConfigStore', parent=root_module['ns3::ObjectBase'])
    2.19      ## delay-jitter-estimation.h: ns3::DelayJitterEstimation [class]
    2.20 @@ -63,8 +63,8 @@
    2.21  def register_methods(root_module):
    2.22      register_Ns3Gnuplot_methods(root_module, root_module['ns3::Gnuplot'])
    2.23      register_Ns3EventGarbageCollector_methods(root_module, root_module['ns3::EventGarbageCollector'])
    2.24 +    register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
    2.25      register_Ns3GnuplotDataset_methods(root_module, root_module['ns3::GnuplotDataset'])
    2.26 -    register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore'])
    2.27      register_Ns3ConfigStore_methods(root_module, root_module['ns3::ConfigStore'])
    2.28      register_Ns3DelayJitterEstimation_methods(root_module, root_module['ns3::DelayJitterEstimation'])
    2.29      return
    2.30 @@ -99,6 +99,17 @@
    2.31                     [param('ns3::EventId', 'event')])
    2.32      return
    2.33  
    2.34 +def register_Ns3GtkConfigStore_methods(root_module, cls):
    2.35 +    ## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
    2.36 +    cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
    2.37 +    ## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
    2.38 +    cls.add_constructor([])
    2.39 +    ## gtk-config-store.h: void ns3::GtkConfigStore::Configure() [member function]
    2.40 +    cls.add_method('Configure', 
    2.41 +                   'void', 
    2.42 +                   [])
    2.43 +    return
    2.44 +
    2.45  def register_Ns3GnuplotDataset_methods(root_module, cls):
    2.46      ## gnuplot.h: ns3::GnuplotDataset::GnuplotDataset(ns3::GnuplotDataset const & arg0) [copy constructor]
    2.47      cls.add_constructor([param('ns3::GnuplotDataset const &', 'arg0')])
    2.48 @@ -124,17 +135,6 @@
    2.49                     [param('double', 'x'), param('double', 'y'), param('double', 'errorDelta')])
    2.50      return
    2.51  
    2.52 -def register_Ns3GtkConfigStore_methods(root_module, cls):
    2.53 -    ## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor]
    2.54 -    cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')])
    2.55 -    ## gtk-config-store.h: ns3::GtkConfigStore::GtkConfigStore() [constructor]
    2.56 -    cls.add_constructor([])
    2.57 -    ## gtk-config-store.h: void ns3::GtkConfigStore::Configure() [member function]
    2.58 -    cls.add_method('Configure', 
    2.59 -                   'void', 
    2.60 -                   [])
    2.61 -    return
    2.62 -
    2.63  def register_Ns3ConfigStore_methods(root_module, cls):
    2.64      ## config-store.h: ns3::ConfigStore::ConfigStore(ns3::ConfigStore const & arg0) [copy constructor]
    2.65      cls.add_constructor([param('ns3::ConfigStore const &', 'arg0')])
     3.1 --- a/bindings/python/ns3_module_csma.py	Tue Sep 02 10:45:06 2008 -0700
     3.2 +++ b/bindings/python/ns3_module_csma.py	Tue Sep 02 11:28:03 2008 -0700
     3.3 @@ -397,8 +397,8 @@
     3.4                     'void', 
     3.5                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
     3.6                     is_virtual=True)
     3.7 -    ## csma-net-device.h: bool ns3::CsmaNetDevice::SupportsPromiscuous() const [member function]
     3.8 -    cls.add_method('SupportsPromiscuous', 
     3.9 +    ## csma-net-device.h: bool ns3::CsmaNetDevice::SupportsSendFrom() const [member function]
    3.10 +    cls.add_method('SupportsSendFrom', 
    3.11                     'bool', 
    3.12                     [], 
    3.13                     is_const=True, is_virtual=True)
     4.1 --- a/bindings/python/ns3_module_internet_stack.py	Tue Sep 02 10:45:06 2008 -0700
     4.2 +++ b/bindings/python/ns3_module_internet_stack.py	Tue Sep 02 11:28:03 2008 -0700
     4.3 @@ -11,10 +11,10 @@
     4.4      module.add_class('TcpHeader', parent=root_module['ns3::Header'])
     4.5      ## tcp-header.h: ns3::TcpHeader::Flags_t [enumeration]
     4.6      module.add_enum('Flags_t', ['NONE', 'FIN', 'SYN', 'RST', 'PSH', 'ACK', 'URG'], outer_class=root_module['ns3::TcpHeader'])
     4.7 +    ## ipv4-l3-protocol.h: ns3::Ipv4L3Protocol [class]
     4.8 +    module.add_class('Ipv4L3Protocol', parent=root_module['ns3::Object'])
     4.9      ## ipv4-static-routing.h: ns3::Ipv4StaticRouting [class]
    4.10      module.add_class('Ipv4StaticRouting', parent=root_module['ns3::Ipv4RoutingProtocol'])
    4.11 -    ## ipv4-l3-protocol.h: ns3::Ipv4L3Protocol [class]
    4.12 -    module.add_class('Ipv4L3Protocol', parent=root_module['ns3::Object'])
    4.13      
    4.14      ## Register a nested module for the namespace internal
    4.15      
    4.16 @@ -60,8 +60,8 @@
    4.17      register_Ns3Ipv4Interface_methods(root_module, root_module['ns3::Ipv4Interface'])
    4.18      register_Ns3UdpHeader_methods(root_module, root_module['ns3::UdpHeader'])
    4.19      register_Ns3TcpHeader_methods(root_module, root_module['ns3::TcpHeader'])
    4.20 +    register_Ns3Ipv4L3Protocol_methods(root_module, root_module['ns3::Ipv4L3Protocol'])
    4.21      register_Ns3Ipv4StaticRouting_methods(root_module, root_module['ns3::Ipv4StaticRouting'])
    4.22 -    register_Ns3Ipv4L3Protocol_methods(root_module, root_module['ns3::Ipv4L3Protocol'])
    4.23      return
    4.24  
    4.25  def register_Ns3Ipv4Interface_methods(root_module, cls):
    4.26 @@ -340,95 +340,6 @@
    4.27                     is_const=True)
    4.28      return
    4.29  
    4.30 -def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
    4.31 -    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
    4.32 -    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
    4.33 -    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
    4.34 -    cls.add_constructor([])
    4.35 -    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RequestRoute(uint32_t ifIndex, ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet> packet, ns3::Callback<void,bool,const ns3::Ipv4Route&,ns3::Ptr<ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty> routeReply) [member function]
    4.36 -    cls.add_method('RequestRoute', 
    4.37 -                   'bool', 
    4.38 -                   [param('uint32_t', 'ifIndex'), param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Callback< void, bool, const ns3::Ipv4Route&, ns3::Ptr< ns3::Packet >, const ns3::Ipv4Header&, ns3::empty, ns3::empty >', 'routeReply')], 
    4.39 -                   is_virtual=True)
    4.40 -    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RequestIfIndex(ns3::Ipv4Address destination, uint32_t & ifIndex) [member function]
    4.41 -    cls.add_method('RequestIfIndex', 
    4.42 -                   'bool', 
    4.43 -                   [param('ns3::Ipv4Address', 'destination'), param('uint32_t &', 'ifIndex')], 
    4.44 -                   is_virtual=True)
    4.45 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
    4.46 -    cls.add_method('AddHostRouteTo', 
    4.47 -                   'void', 
    4.48 -                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
    4.49 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
    4.50 -    cls.add_method('AddHostRouteTo', 
    4.51 -                   'void', 
    4.52 -                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
    4.53 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
    4.54 -    cls.add_method('AddNetworkRouteTo', 
    4.55 -                   'void', 
    4.56 -                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
    4.57 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
    4.58 -    cls.add_method('AddNetworkRouteTo', 
    4.59 -                   'void', 
    4.60 -                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
    4.61 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
    4.62 -    cls.add_method('SetDefaultRoute', 
    4.63 -                   'void', 
    4.64 -                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
    4.65 -    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() [member function]
    4.66 -    cls.add_method('GetNRoutes', 
    4.67 -                   'uint32_t', 
    4.68 -                   [])
    4.69 -    ## ipv4-static-routing.h: ns3::Ipv4Route * ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
    4.70 -    cls.add_method('GetDefaultRoute', 
    4.71 -                   'ns3::Ipv4Route *', 
    4.72 -                   [])
    4.73 -    ## ipv4-static-routing.h: ns3::Ipv4Route * ns3::Ipv4StaticRouting::GetRoute(uint32_t i) [member function]
    4.74 -    cls.add_method('GetRoute', 
    4.75 -                   'ns3::Ipv4Route *', 
    4.76 -                   [param('uint32_t', 'i')])
    4.77 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
    4.78 -    cls.add_method('RemoveRoute', 
    4.79 -                   'void', 
    4.80 -                   [param('uint32_t', 'i')])
    4.81 -    ## 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]
    4.82 -    cls.add_method('AddMulticastRoute', 
    4.83 -                   'void', 
    4.84 -                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
    4.85 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
    4.86 -    cls.add_method('SetDefaultMulticastRoute', 
    4.87 -                   'void', 
    4.88 -                   [param('uint32_t', 'outputInterface')])
    4.89 -    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
    4.90 -    cls.add_method('GetNMulticastRoutes', 
    4.91 -                   'uint32_t', 
    4.92 -                   [], 
    4.93 -                   is_const=True)
    4.94 -    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoute * ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
    4.95 -    cls.add_method('GetMulticastRoute', 
    4.96 -                   'ns3::Ipv4MulticastRoute *', 
    4.97 -                   [param('uint32_t', 'i')], 
    4.98 -                   is_const=True)
    4.99 -    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoute * ns3::Ipv4StaticRouting::GetDefaultMulticastRoute() const [member function]
   4.100 -    cls.add_method('GetDefaultMulticastRoute', 
   4.101 -                   'ns3::Ipv4MulticastRoute *', 
   4.102 -                   [], 
   4.103 -                   is_const=True)
   4.104 -    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
   4.105 -    cls.add_method('RemoveMulticastRoute', 
   4.106 -                   'bool', 
   4.107 -                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
   4.108 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
   4.109 -    cls.add_method('RemoveMulticastRoute', 
   4.110 -                   'void', 
   4.111 -                   [param('uint32_t', 'index')])
   4.112 -    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
   4.113 -    cls.add_method('DoDispose', 
   4.114 -                   'void', 
   4.115 -                   [], 
   4.116 -                   visibility='protected', is_virtual=True)
   4.117 -    return
   4.118 -
   4.119  def register_Ns3Ipv4L3Protocol_methods(root_module, cls):
   4.120      ## ipv4-l3-protocol.h: ns3::Ipv4L3Protocol::PROT_NUMBER [variable]
   4.121      cls.add_static_attribute('PROT_NUMBER', 'uint16_t const', is_const=True)
   4.122 @@ -621,6 +532,95 @@
   4.123                     visibility='protected', is_virtual=True)
   4.124      return
   4.125  
   4.126 +def register_Ns3Ipv4StaticRouting_methods(root_module, cls):
   4.127 +    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting(ns3::Ipv4StaticRouting const & arg0) [copy constructor]
   4.128 +    cls.add_constructor([param('ns3::Ipv4StaticRouting const &', 'arg0')])
   4.129 +    ## ipv4-static-routing.h: ns3::Ipv4StaticRouting::Ipv4StaticRouting() [constructor]
   4.130 +    cls.add_constructor([])
   4.131 +    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RequestRoute(uint32_t ifIndex, ns3::Ipv4Header const & ipHeader, ns3::Ptr<ns3::Packet> packet, ns3::Callback<void,bool,const ns3::Ipv4Route&,ns3::Ptr<ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty> routeReply) [member function]
   4.132 +    cls.add_method('RequestRoute', 
   4.133 +                   'bool', 
   4.134 +                   [param('uint32_t', 'ifIndex'), param('ns3::Ipv4Header const &', 'ipHeader'), param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Callback< void, bool, const ns3::Ipv4Route&, ns3::Ptr< ns3::Packet >, const ns3::Ipv4Header&, ns3::empty, ns3::empty >', 'routeReply')], 
   4.135 +                   is_virtual=True)
   4.136 +    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RequestIfIndex(ns3::Ipv4Address destination, uint32_t & ifIndex) [member function]
   4.137 +    cls.add_method('RequestIfIndex', 
   4.138 +                   'bool', 
   4.139 +                   [param('ns3::Ipv4Address', 'destination'), param('uint32_t &', 'ifIndex')], 
   4.140 +                   is_virtual=True)
   4.141 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
   4.142 +    cls.add_method('AddHostRouteTo', 
   4.143 +                   'void', 
   4.144 +                   [param('ns3::Ipv4Address', 'dest'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
   4.145 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddHostRouteTo(ns3::Ipv4Address dest, uint32_t interface) [member function]
   4.146 +    cls.add_method('AddHostRouteTo', 
   4.147 +                   'void', 
   4.148 +                   [param('ns3::Ipv4Address', 'dest'), param('uint32_t', 'interface')])
   4.149 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, ns3::Ipv4Address nextHop, uint32_t interface) [member function]
   4.150 +    cls.add_method('AddNetworkRouteTo', 
   4.151 +                   'void', 
   4.152 +                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
   4.153 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::AddNetworkRouteTo(ns3::Ipv4Address network, ns3::Ipv4Mask networkMask, uint32_t interface) [member function]
   4.154 +    cls.add_method('AddNetworkRouteTo', 
   4.155 +                   'void', 
   4.156 +                   [param('ns3::Ipv4Address', 'network'), param('ns3::Ipv4Mask', 'networkMask'), param('uint32_t', 'interface')])
   4.157 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultRoute(ns3::Ipv4Address nextHop, uint32_t interface) [member function]
   4.158 +    cls.add_method('SetDefaultRoute', 
   4.159 +                   'void', 
   4.160 +                   [param('ns3::Ipv4Address', 'nextHop'), param('uint32_t', 'interface')])
   4.161 +    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNRoutes() [member function]
   4.162 +    cls.add_method('GetNRoutes', 
   4.163 +                   'uint32_t', 
   4.164 +                   [])
   4.165 +    ## ipv4-static-routing.h: ns3::Ipv4Route * ns3::Ipv4StaticRouting::GetDefaultRoute() [member function]
   4.166 +    cls.add_method('GetDefaultRoute', 
   4.167 +                   'ns3::Ipv4Route *', 
   4.168 +                   [])
   4.169 +    ## ipv4-static-routing.h: ns3::Ipv4Route * ns3::Ipv4StaticRouting::GetRoute(uint32_t i) [member function]
   4.170 +    cls.add_method('GetRoute', 
   4.171 +                   'ns3::Ipv4Route *', 
   4.172 +                   [param('uint32_t', 'i')])
   4.173 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveRoute(uint32_t i) [member function]
   4.174 +    cls.add_method('RemoveRoute', 
   4.175 +                   'void', 
   4.176 +                   [param('uint32_t', 'i')])
   4.177 +    ## 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]
   4.178 +    cls.add_method('AddMulticastRoute', 
   4.179 +                   'void', 
   4.180 +                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface'), param('std::vector< unsigned int >', 'outputInterfaces')])
   4.181 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::SetDefaultMulticastRoute(uint32_t outputInterface) [member function]
   4.182 +    cls.add_method('SetDefaultMulticastRoute', 
   4.183 +                   'void', 
   4.184 +                   [param('uint32_t', 'outputInterface')])
   4.185 +    ## ipv4-static-routing.h: uint32_t ns3::Ipv4StaticRouting::GetNMulticastRoutes() const [member function]
   4.186 +    cls.add_method('GetNMulticastRoutes', 
   4.187 +                   'uint32_t', 
   4.188 +                   [], 
   4.189 +                   is_const=True)
   4.190 +    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoute * ns3::Ipv4StaticRouting::GetMulticastRoute(uint32_t i) const [member function]
   4.191 +    cls.add_method('GetMulticastRoute', 
   4.192 +                   'ns3::Ipv4MulticastRoute *', 
   4.193 +                   [param('uint32_t', 'i')], 
   4.194 +                   is_const=True)
   4.195 +    ## ipv4-static-routing.h: ns3::Ipv4MulticastRoute * ns3::Ipv4StaticRouting::GetDefaultMulticastRoute() const [member function]
   4.196 +    cls.add_method('GetDefaultMulticastRoute', 
   4.197 +                   'ns3::Ipv4MulticastRoute *', 
   4.198 +                   [], 
   4.199 +                   is_const=True)
   4.200 +    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RemoveMulticastRoute(ns3::Ipv4Address origin, ns3::Ipv4Address group, uint32_t inputInterface) [member function]
   4.201 +    cls.add_method('RemoveMulticastRoute', 
   4.202 +                   'bool', 
   4.203 +                   [param('ns3::Ipv4Address', 'origin'), param('ns3::Ipv4Address', 'group'), param('uint32_t', 'inputInterface')])
   4.204 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::RemoveMulticastRoute(uint32_t index) [member function]
   4.205 +    cls.add_method('RemoveMulticastRoute', 
   4.206 +                   'void', 
   4.207 +                   [param('uint32_t', 'index')])
   4.208 +    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::DoDispose() [member function]
   4.209 +    cls.add_method('DoDispose', 
   4.210 +                   'void', 
   4.211 +                   [], 
   4.212 +                   visibility='protected', is_virtual=True)
   4.213 +    return
   4.214 +
   4.215  def register_functions(root_module):
   4.216      module = root_module
   4.217      ## internet-stack.h: extern void ns3::AddInternetStack(ns3::Ptr<ns3::Node> node) [free function]
     5.1 --- a/bindings/python/ns3_module_mobility.py	Tue Sep 02 10:45:06 2008 -0700
     5.2 +++ b/bindings/python/ns3_module_mobility.py	Tue Sep 02 11:28:03 2008 -0700
     5.3 @@ -19,10 +19,10 @@
     5.4      module.add_class('PositionAllocator', parent=root_module['ns3::Object'])
     5.5      ## position-allocator.h: ns3::ListPositionAllocator [class]
     5.6      module.add_class('ListPositionAllocator', parent=root_module['ns3::PositionAllocator'])
     5.7 +    ## rectangle.h: ns3::RectangleValue [class]
     5.8 +    module.add_class('RectangleValue', parent=root_module['ns3::AttributeValue'])
     5.9      ## position-allocator.h: ns3::RandomRectanglePositionAllocator [class]
    5.10      module.add_class('RandomRectanglePositionAllocator', parent=root_module['ns3::PositionAllocator'])
    5.11 -    ## rectangle.h: ns3::RectangleValue [class]
    5.12 -    module.add_class('RectangleValue', parent=root_module['ns3::AttributeValue'])
    5.13      ## vector.h: ns3::VectorValue [class]
    5.14      module.add_class('VectorValue', parent=root_module['ns3::AttributeValue'])
    5.15      ## position-allocator.h: ns3::RandomDiscPositionAllocator [class]
    5.16 @@ -96,8 +96,8 @@
    5.17      register_Ns3Rectangle_methods(root_module, root_module['ns3::Rectangle'])
    5.18      register_Ns3PositionAllocator_methods(root_module, root_module['ns3::PositionAllocator'])
    5.19      register_Ns3ListPositionAllocator_methods(root_module, root_module['ns3::ListPositionAllocator'])
    5.20 +    register_Ns3RectangleValue_methods(root_module, root_module['ns3::RectangleValue'])
    5.21      register_Ns3RandomRectanglePositionAllocator_methods(root_module, root_module['ns3::RandomRectanglePositionAllocator'])
    5.22 -    register_Ns3RectangleValue_methods(root_module, root_module['ns3::RectangleValue'])
    5.23      register_Ns3VectorValue_methods(root_module, root_module['ns3::VectorValue'])
    5.24      register_Ns3RandomDiscPositionAllocator_methods(root_module, root_module['ns3::RandomDiscPositionAllocator'])
    5.25      register_Ns3MobilityModel_methods(root_module, root_module['ns3::MobilityModel'])
    5.26 @@ -257,31 +257,6 @@
    5.27                     is_const=True, is_virtual=True)
    5.28      return
    5.29  
    5.30 -def register_Ns3RandomRectanglePositionAllocator_methods(root_module, cls):
    5.31 -    ## position-allocator.h: ns3::RandomRectanglePositionAllocator::RandomRectanglePositionAllocator(ns3::RandomRectanglePositionAllocator const & arg0) [copy constructor]
    5.32 -    cls.add_constructor([param('ns3::RandomRectanglePositionAllocator const &', 'arg0')])
    5.33 -    ## position-allocator.h: static ns3::TypeId ns3::RandomRectanglePositionAllocator::GetTypeId() [member function]
    5.34 -    cls.add_method('GetTypeId', 
    5.35 -                   'ns3::TypeId', 
    5.36 -                   [], 
    5.37 -                   is_static=True)
    5.38 -    ## position-allocator.h: ns3::RandomRectanglePositionAllocator::RandomRectanglePositionAllocator() [constructor]
    5.39 -    cls.add_constructor([])
    5.40 -    ## position-allocator.h: void ns3::RandomRectanglePositionAllocator::SetX(ns3::RandomVariable x) [member function]
    5.41 -    cls.add_method('SetX', 
    5.42 -                   'void', 
    5.43 -                   [param('ns3::RandomVariable', 'x')])
    5.44 -    ## position-allocator.h: void ns3::RandomRectanglePositionAllocator::SetY(ns3::RandomVariable y) [member function]
    5.45 -    cls.add_method('SetY', 
    5.46 -                   'void', 
    5.47 -                   [param('ns3::RandomVariable', 'y')])
    5.48 -    ## position-allocator.h: ns3::Vector ns3::RandomRectanglePositionAllocator::GetNext() const [member function]
    5.49 -    cls.add_method('GetNext', 
    5.50 -                   'ns3::Vector', 
    5.51 -                   [], 
    5.52 -                   is_const=True, is_virtual=True)
    5.53 -    return
    5.54 -
    5.55  def register_Ns3RectangleValue_methods(root_module, cls):
    5.56      ## rectangle.h: ns3::RectangleValue::RectangleValue(ns3::RectangleValue const & arg0) [copy constructor]
    5.57      cls.add_constructor([param('ns3::RectangleValue const &', 'arg0')])
    5.58 @@ -315,6 +290,31 @@
    5.59                     is_virtual=True)
    5.60      return
    5.61  
    5.62 +def register_Ns3RandomRectanglePositionAllocator_methods(root_module, cls):
    5.63 +    ## position-allocator.h: ns3::RandomRectanglePositionAllocator::RandomRectanglePositionAllocator(ns3::RandomRectanglePositionAllocator const & arg0) [copy constructor]
    5.64 +    cls.add_constructor([param('ns3::RandomRectanglePositionAllocator const &', 'arg0')])
    5.65 +    ## position-allocator.h: static ns3::TypeId ns3::RandomRectanglePositionAllocator::GetTypeId() [member function]
    5.66 +    cls.add_method('GetTypeId', 
    5.67 +                   'ns3::TypeId', 
    5.68 +                   [], 
    5.69 +                   is_static=True)
    5.70 +    ## position-allocator.h: ns3::RandomRectanglePositionAllocator::RandomRectanglePositionAllocator() [constructor]
    5.71 +    cls.add_constructor([])
    5.72 +    ## position-allocator.h: void ns3::RandomRectanglePositionAllocator::SetX(ns3::RandomVariable x) [member function]
    5.73 +    cls.add_method('SetX', 
    5.74 +                   'void', 
    5.75 +                   [param('ns3::RandomVariable', 'x')])
    5.76 +    ## position-allocator.h: void ns3::RandomRectanglePositionAllocator::SetY(ns3::RandomVariable y) [member function]
    5.77 +    cls.add_method('SetY', 
    5.78 +                   'void', 
    5.79 +                   [param('ns3::RandomVariable', 'y')])
    5.80 +    ## position-allocator.h: ns3::Vector ns3::RandomRectanglePositionAllocator::GetNext() const [member function]
    5.81 +    cls.add_method('GetNext', 
    5.82 +                   'ns3::Vector', 
    5.83 +                   [], 
    5.84 +                   is_const=True, is_virtual=True)
    5.85 +    return
    5.86 +
    5.87  def register_Ns3VectorValue_methods(root_module, cls):
    5.88      ## vector.h: ns3::VectorValue::VectorValue(ns3::VectorValue const & arg0) [copy constructor]
    5.89      cls.add_constructor([param('ns3::VectorValue const &', 'arg0')])
    5.90 @@ -695,14 +695,14 @@
    5.91      module.add_function('MakeRectangleChecker', 
    5.92                          'ns3::Ptr< ns3::AttributeChecker const >', 
    5.93                          [])
    5.94 +    ## vector.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeVectorChecker() [free function]
    5.95 +    module.add_function('MakeVectorChecker', 
    5.96 +                        'ns3::Ptr< ns3::AttributeChecker const >', 
    5.97 +                        [])
    5.98      ## vector.h: extern double ns3::CalculateDistance(ns3::Vector const & a, ns3::Vector const & b) [free function]
    5.99      module.add_function('CalculateDistance', 
   5.100                          'double', 
   5.101                          [param('ns3::Vector const &', 'a'), param('ns3::Vector const &', 'b')])
   5.102 -    ## vector.h: extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeVectorChecker() [free function]
   5.103 -    module.add_function('MakeVectorChecker', 
   5.104 -                        'ns3::Ptr< ns3::AttributeChecker const >', 
   5.105 -                        [])
   5.106      register_functions_ns3_internal(module.get_submodule('internal'), root_module)
   5.107      register_functions_ns3_TimeStepPrecision(module.get_submodule('TimeStepPrecision'), root_module)
   5.108      register_functions_ns3_Config(module.get_submodule('Config'), root_module)
     6.1 --- a/bindings/python/ns3_module_node.py	Tue Sep 02 10:45:06 2008 -0700
     6.2 +++ b/bindings/python/ns3_module_node.py	Tue Sep 02 11:28:03 2008 -0700
     6.3 @@ -1625,8 +1625,8 @@
     6.4                     'void', 
     6.5                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
     6.6                     is_pure_virtual=True, is_virtual=True)
     6.7 -    ## net-device.h: bool ns3::NetDevice::SupportsPromiscuous() const [member function]
     6.8 -    cls.add_method('SupportsPromiscuous', 
     6.9 +    ## net-device.h: bool ns3::NetDevice::SupportsSendFrom() const [member function]
    6.10 +    cls.add_method('SupportsSendFrom', 
    6.11                     'bool', 
    6.12                     [], 
    6.13                     is_pure_virtual=True, is_const=True, is_virtual=True)
    6.14 @@ -2534,8 +2534,8 @@
    6.15                     'void', 
    6.16                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
    6.17                     is_virtual=True)
    6.18 -    ## simple-net-device.h: bool ns3::SimpleNetDevice::SupportsPromiscuous() const [member function]
    6.19 -    cls.add_method('SupportsPromiscuous', 
    6.20 +    ## simple-net-device.h: bool ns3::SimpleNetDevice::SupportsSendFrom() const [member function]
    6.21 +    cls.add_method('SupportsSendFrom', 
    6.22                     'bool', 
    6.23                     [], 
    6.24                     is_const=True, is_virtual=True)
     7.1 --- a/bindings/python/ns3_module_point_to_point.py	Tue Sep 02 10:45:06 2008 -0700
     7.2 +++ b/bindings/python/ns3_module_point_to_point.py	Tue Sep 02 11:28:03 2008 -0700
     7.3 @@ -241,8 +241,8 @@
     7.4                     'void', 
     7.5                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
     7.6                     is_virtual=True)
     7.7 -    ## point-to-point-net-device.h: bool ns3::PointToPointNetDevice::SupportsPromiscuous() const [member function]
     7.8 -    cls.add_method('SupportsPromiscuous', 
     7.9 +    ## point-to-point-net-device.h: bool ns3::PointToPointNetDevice::SupportsSendFrom() const [member function]
    7.10 +    cls.add_method('SupportsSendFrom', 
    7.11                     'bool', 
    7.12                     [], 
    7.13                     is_const=True, is_virtual=True)
     8.1 --- a/bindings/python/ns3_module_simulator.py	Tue Sep 02 10:45:06 2008 -0700
     8.2 +++ b/bindings/python/ns3_module_simulator.py	Tue Sep 02 11:28:03 2008 -0700
     8.3 @@ -9,6 +9,8 @@
     8.4      module.add_enum('DestroyPolicy', ['CANCEL_ON_DESTROY', 'REMOVE_ON_DESTROY', 'CHECK_ON_DESTROY'], outer_class=root_module['ns3::Timer'])
     8.5      ## timer.h: ns3::Timer::State [enumeration]
     8.6      module.add_enum('State', ['RUNNING', 'EXPIRED', 'SUSPENDED'], outer_class=root_module['ns3::Timer'])
     8.7 +    ## event-impl.h: ns3::EventImpl [class]
     8.8 +    module.add_class('EventImpl', allow_subclassing=True)
     8.9      ## timer-impl.h: ns3::TimerImpl [class]
    8.10      module.add_class('TimerImpl', allow_subclassing=True)
    8.11      ## nstime.h: ns3::TimeUnit<1> [class]
    8.12 @@ -23,8 +25,6 @@
    8.13      module.add_class('EventLock', allow_subclassing=True)
    8.14      ## event-id.h: ns3::EventId [class]
    8.15      module.add_class('EventId')
    8.16 -    ## event-impl.h: ns3::EventImpl [class]
    8.17 -    module.add_class('EventImpl', allow_subclassing=True)
    8.18      ## realtime-simulator-impl.h: ns3::RealtimeEventLock [class]
    8.19      module.add_class('RealtimeEventLock', parent=root_module['ns3::EventLock'])
    8.20      ## high-precision-128.h: ns3::HighPrecision [class]
    8.21 @@ -47,10 +47,10 @@
    8.22      module.add_class('DefaultSimulatorImpl', parent=root_module['ns3::SimulatorImpl'])
    8.23      ## synchronizer.h: ns3::Synchronizer [class]
    8.24      module.add_class('Synchronizer', parent=root_module['ns3::Object'])
    8.25 +    ## list-scheduler.h: ns3::ListScheduler [class]
    8.26 +    module.add_class('ListScheduler', parent=root_module['ns3::Scheduler'])
    8.27      ## heap-scheduler.h: ns3::HeapScheduler [class]
    8.28      module.add_class('HeapScheduler', parent=root_module['ns3::Scheduler'])
    8.29 -    ## list-scheduler.h: ns3::ListScheduler [class]
    8.30 -    module.add_class('ListScheduler', parent=root_module['ns3::Scheduler'])
    8.31      ## map-scheduler.h: ns3::MapScheduler [class]
    8.32      module.add_class('MapScheduler', parent=root_module['ns3::Scheduler'])
    8.33      ## wall-clock-synchronizer.h: ns3::WallClockSynchronizer [class]
    8.34 @@ -100,6 +100,7 @@
    8.35  
    8.36  def register_methods(root_module):
    8.37      register_Ns3Timer_methods(root_module, root_module['ns3::Timer'])
    8.38 +    register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl'])
    8.39      register_Ns3TimerImpl_methods(root_module, root_module['ns3::TimerImpl'])
    8.40      register_Ns3Time_methods(root_module, root_module['ns3::Time'])
    8.41      register_Ns3Scalar_methods(root_module, root_module['ns3::Scalar'])
    8.42 @@ -107,7 +108,6 @@
    8.43      register_Ns3Simulator_methods(root_module, root_module['ns3::Simulator'])
    8.44      register_Ns3EventLock_methods(root_module, root_module['ns3::EventLock'])
    8.45      register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
    8.46 -    register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl'])
    8.47      register_Ns3RealtimeEventLock_methods(root_module, root_module['ns3::RealtimeEventLock'])
    8.48      register_Ns3HighPrecision_methods(root_module, root_module['ns3::HighPrecision'])
    8.49      register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
    8.50 @@ -118,8 +118,8 @@
    8.51      register_Ns3RealtimeSimulatorImpl_methods(root_module, root_module['ns3::RealtimeSimulatorImpl'])
    8.52      register_Ns3DefaultSimulatorImpl_methods(root_module, root_module['ns3::DefaultSimulatorImpl'])
    8.53      register_Ns3Synchronizer_methods(root_module, root_module['ns3::Synchronizer'])
    8.54 +    register_Ns3ListScheduler_methods(root_module, root_module['ns3::ListScheduler'])
    8.55      register_Ns3HeapScheduler_methods(root_module, root_module['ns3::HeapScheduler'])
    8.56 -    register_Ns3ListScheduler_methods(root_module, root_module['ns3::ListScheduler'])
    8.57      register_Ns3MapScheduler_methods(root_module, root_module['ns3::MapScheduler'])
    8.58      register_Ns3WallClockSynchronizer_methods(root_module, root_module['ns3::WallClockSynchronizer'])
    8.59      return
    8.60 @@ -191,6 +191,50 @@
    8.61                     [])
    8.62      return
    8.63  
    8.64 +def register_Ns3EventImpl_methods(root_module, cls):
    8.65 +    ## event-impl.h: ns3::EventImpl::EventImpl(ns3::EventImpl const & arg0) [copy constructor]
    8.66 +    cls.add_constructor([param('ns3::EventImpl const &', 'arg0')])
    8.67 +    ## event-impl.h: ns3::EventImpl::EventImpl() [constructor]
    8.68 +    cls.add_constructor([])
    8.69 +    ## event-impl.h: void ns3::EventImpl::Ref() const [member function]
    8.70 +    cls.add_method('Ref', 
    8.71 +                   'void', 
    8.72 +                   [], 
    8.73 +                   is_const=True)
    8.74 +    ## event-impl.h: void ns3::EventImpl::Unref() const [member function]
    8.75 +    cls.add_method('Unref', 
    8.76 +                   'void', 
    8.77 +                   [], 
    8.78 +                   is_const=True)
    8.79 +    ## event-impl.h: void ns3::EventImpl::Invoke() [member function]
    8.80 +    cls.add_method('Invoke', 
    8.81 +                   'void', 
    8.82 +                   [])
    8.83 +    ## event-impl.h: void ns3::EventImpl::Cancel() [member function]
    8.84 +    cls.add_method('Cancel', 
    8.85 +                   'void', 
    8.86 +                   [])
    8.87 +    ## event-impl.h: bool ns3::EventImpl::IsCancelled() [member function]
    8.88 +    cls.add_method('IsCancelled', 
    8.89 +                   'bool', 
    8.90 +                   [])
    8.91 +    ## event-impl.h: static void ns3::EventImpl::SetEventLock(ns3::EventLock * eventLock) [member function]
    8.92 +    cls.add_method('SetEventLock', 
    8.93 +                   'void', 
    8.94 +                   [param('ns3::EventLock *', 'eventLock')], 
    8.95 +                   is_static=True)
    8.96 +    ## event-impl.h: static void ns3::EventImpl::SetNoEventLock() [member function]
    8.97 +    cls.add_method('SetNoEventLock', 
    8.98 +                   'void', 
    8.99 +                   [], 
   8.100 +                   is_static=True)
   8.101 +    ## event-impl.h: void ns3::EventImpl::Notify() [member function]
   8.102 +    cls.add_method('Notify', 
   8.103 +                   'void', 
   8.104 +                   [], 
   8.105 +                   is_pure_virtual=True, visibility='protected', is_virtual=True)
   8.106 +    return
   8.107 +
   8.108  def register_Ns3TimerImpl_methods(root_module, cls):
   8.109      ## timer-impl.h: ns3::TimerImpl::TimerImpl(ns3::TimerImpl const & arg0) [copy constructor]
   8.110      cls.add_constructor([param('ns3::TimerImpl const &', 'arg0')])
   8.111 @@ -497,50 +541,6 @@
   8.112                     is_const=True)
   8.113      return
   8.114  
   8.115 -def register_Ns3EventImpl_methods(root_module, cls):
   8.116 -    ## event-impl.h: ns3::EventImpl::EventImpl(ns3::EventImpl const & arg0) [copy constructor]
   8.117 -    cls.add_constructor([param('ns3::EventImpl const &', 'arg0')])
   8.118 -    ## event-impl.h: ns3::EventImpl::EventImpl() [constructor]
   8.119 -    cls.add_constructor([])
   8.120 -    ## event-impl.h: void ns3::EventImpl::Ref() const [member function]
   8.121 -    cls.add_method('Ref', 
   8.122 -                   'void', 
   8.123 -                   [], 
   8.124 -                   is_const=True)
   8.125 -    ## event-impl.h: void ns3::EventImpl::Unref() const [member function]
   8.126 -    cls.add_method('Unref', 
   8.127 -                   'void', 
   8.128 -                   [], 
   8.129 -                   is_const=True)
   8.130 -    ## event-impl.h: void ns3::EventImpl::Invoke() [member function]
   8.131 -    cls.add_method('Invoke', 
   8.132 -                   'void', 
   8.133 -                   [])
   8.134 -    ## event-impl.h: void ns3::EventImpl::Cancel() [member function]
   8.135 -    cls.add_method('Cancel', 
   8.136 -                   'void', 
   8.137 -                   [])
   8.138 -    ## event-impl.h: bool ns3::EventImpl::IsCancelled() [member function]
   8.139 -    cls.add_method('IsCancelled', 
   8.140 -                   'bool', 
   8.141 -                   [])
   8.142 -    ## event-impl.h: static void ns3::EventImpl::SetEventLock(ns3::EventLock * eventLock) [member function]
   8.143 -    cls.add_method('SetEventLock', 
   8.144 -                   'void', 
   8.145 -                   [param('ns3::EventLock *', 'eventLock')], 
   8.146 -                   is_static=True)
   8.147 -    ## event-impl.h: static void ns3::EventImpl::SetNoEventLock() [member function]
   8.148 -    cls.add_method('SetNoEventLock', 
   8.149 -                   'void', 
   8.150 -                   [], 
   8.151 -                   is_static=True)
   8.152 -    ## event-impl.h: void ns3::EventImpl::Notify() [member function]
   8.153 -    cls.add_method('Notify', 
   8.154 -                   'void', 
   8.155 -                   [], 
   8.156 -                   is_pure_virtual=True, visibility='protected', is_virtual=True)
   8.157 -    return
   8.158 -
   8.159  def register_Ns3RealtimeEventLock_methods(root_module, cls):
   8.160      ## realtime-simulator-impl.h: ns3::RealtimeEventLock::RealtimeEventLock(ns3::RealtimeEventLock const & arg0) [copy constructor]
   8.161      cls.add_constructor([param('ns3::RealtimeEventLock const &', 'arg0')])
   8.162 @@ -1114,6 +1114,38 @@
   8.163                     is_pure_virtual=True, visibility='protected', is_virtual=True)
   8.164      return
   8.165  
   8.166 +def register_Ns3ListScheduler_methods(root_module, cls):
   8.167 +    ## list-scheduler.h: ns3::ListScheduler::ListScheduler(ns3::ListScheduler const & arg0) [copy constructor]
   8.168 +    cls.add_constructor([param('ns3::ListScheduler const &', 'arg0')])
   8.169 +    ## list-scheduler.h: ns3::ListScheduler::ListScheduler() [constructor]
   8.170 +    cls.add_constructor([])
   8.171 +    ## list-scheduler.h: void ns3::ListScheduler::Insert(ns3::EventId const & id) [member function]
   8.172 +    cls.add_method('Insert', 
   8.173 +                   'void', 
   8.174 +                   [param('ns3::EventId const &', 'id')], 
   8.175 +                   is_virtual=True)
   8.176 +    ## list-scheduler.h: bool ns3::ListScheduler::IsEmpty() const [member function]
   8.177 +    cls.add_method('IsEmpty', 
   8.178 +                   'bool', 
   8.179 +                   [], 
   8.180 +                   is_const=True, is_virtual=True)
   8.181 +    ## list-scheduler.h: ns3::EventId ns3::ListScheduler::PeekNext() const [member function]
   8.182 +    cls.add_method('PeekNext', 
   8.183 +                   'ns3::EventId', 
   8.184 +                   [], 
   8.185 +                   is_const=True, is_virtual=True)
   8.186 +    ## list-scheduler.h: ns3::EventId ns3::ListScheduler::RemoveNext() [member function]
   8.187 +    cls.add_method('RemoveNext', 
   8.188 +                   'ns3::EventId', 
   8.189 +                   [], 
   8.190 +                   is_virtual=True)
   8.191 +    ## list-scheduler.h: bool ns3::ListScheduler::Remove(ns3::EventId const & ev) [member function]
   8.192 +    cls.add_method('Remove', 
   8.193 +                   'bool', 
   8.194 +                   [param('ns3::EventId const &', 'ev')], 
   8.195 +                   is_virtual=True)
   8.196 +    return
   8.197 +
   8.198  def register_Ns3HeapScheduler_methods(root_module, cls):
   8.199      ## heap-scheduler.h: ns3::HeapScheduler::HeapScheduler(ns3::HeapScheduler const & arg0) [copy constructor]
   8.200      cls.add_constructor([param('ns3::HeapScheduler const &', 'arg0')])
   8.201 @@ -1146,38 +1178,6 @@
   8.202                     is_virtual=True)
   8.203      return
   8.204  
   8.205 -def register_Ns3ListScheduler_methods(root_module, cls):
   8.206 -    ## list-scheduler.h: ns3::ListScheduler::ListScheduler(ns3::ListScheduler const & arg0) [copy constructor]
   8.207 -    cls.add_constructor([param('ns3::ListScheduler const &', 'arg0')])
   8.208 -    ## list-scheduler.h: ns3::ListScheduler::ListScheduler() [constructor]
   8.209 -    cls.add_constructor([])
   8.210 -    ## list-scheduler.h: void ns3::ListScheduler::Insert(ns3::EventId const & id) [member function]
   8.211 -    cls.add_method('Insert', 
   8.212 -                   'void', 
   8.213 -                   [param('ns3::EventId const &', 'id')], 
   8.214 -                   is_virtual=True)
   8.215 -    ## list-scheduler.h: bool ns3::ListScheduler::IsEmpty() const [member function]
   8.216 -    cls.add_method('IsEmpty', 
   8.217 -                   'bool', 
   8.218 -                   [], 
   8.219 -                   is_const=True, is_virtual=True)
   8.220 -    ## list-scheduler.h: ns3::EventId ns3::ListScheduler::PeekNext() const [member function]
   8.221 -    cls.add_method('PeekNext', 
   8.222 -                   'ns3::EventId', 
   8.223 -                   [], 
   8.224 -                   is_const=True, is_virtual=True)
   8.225 -    ## list-scheduler.h: ns3::EventId ns3::ListScheduler::RemoveNext() [member function]
   8.226 -    cls.add_method('RemoveNext', 
   8.227 -                   'ns3::EventId', 
   8.228 -                   [], 
   8.229 -                   is_virtual=True)
   8.230 -    ## list-scheduler.h: bool ns3::ListScheduler::Remove(ns3::EventId const & ev) [member function]
   8.231 -    cls.add_method('Remove', 
   8.232 -                   'bool', 
   8.233 -                   [param('ns3::EventId const &', 'ev')], 
   8.234 -                   is_virtual=True)
   8.235 -    return
   8.236 -
   8.237  def register_Ns3MapScheduler_methods(root_module, cls):
   8.238      ## map-scheduler.h: ns3::MapScheduler::MapScheduler(ns3::MapScheduler const & arg0) [copy constructor]
   8.239      cls.add_constructor([param('ns3::MapScheduler const &', 'arg0')])
     9.1 --- a/bindings/python/ns3_module_stats.py	Tue Sep 02 10:45:06 2008 -0700
     9.2 +++ b/bindings/python/ns3_module_stats.py	Tue Sep 02 11:28:03 2008 -0700
     9.3 @@ -23,8 +23,6 @@
     9.4      module.add_class('PacketSizeMinMaxAvgTotalCalculator', parent=root_module['ns3::MinMaxAvgTotalCalculator< unsigned int >'])
     9.5      ## omnet-data-output.h: ns3::OmnetDataOutput [class]
     9.6      module.add_class('OmnetDataOutput', parent=root_module['ns3::DataOutputInterface'])
     9.7 -    ## sqlite-data-output.h: ns3::SqliteDataOutput [class]
     9.8 -    module.add_class('SqliteDataOutput', parent=root_module['ns3::DataOutputInterface'])
     9.9      
    9.10      ## Register a nested module for the namespace internal
    9.11      
    9.12 @@ -77,7 +75,6 @@
    9.13      register_Ns3PacketCounterCalculator_methods(root_module, root_module['ns3::PacketCounterCalculator'])
    9.14      register_Ns3PacketSizeMinMaxAvgTotalCalculator_methods(root_module, root_module['ns3::PacketSizeMinMaxAvgTotalCalculator'])
    9.15      register_Ns3OmnetDataOutput_methods(root_module, root_module['ns3::OmnetDataOutput'])
    9.16 -    register_Ns3SqliteDataOutput_methods(root_module, root_module['ns3::SqliteDataOutput'])
    9.17      return
    9.18  
    9.19  def register_Ns3DataOutputCallback_methods(root_module, cls):
    9.20 @@ -134,9 +131,9 @@
    9.21      cls.add_method('SetKey', 
    9.22                     'void', 
    9.23                     [param('std::string const', 'key')])
    9.24 -    ## data-calculator.h: std::string const ns3::DataCalculator::GetKey() const [member function]
    9.25 +    ## data-calculator.h: std::string ns3::DataCalculator::GetKey() const [member function]
    9.26      cls.add_method('GetKey', 
    9.27 -                   'std::string const', 
    9.28 +                   'std::string', 
    9.29                     [], 
    9.30                     is_const=True)
    9.31      ## data-calculator.h: void ns3::DataCalculator::Start(ns3::Time const & startTime) [member function]
    9.32 @@ -391,32 +388,6 @@
    9.33                     visibility='protected', is_virtual=True)
    9.34      return
    9.35  
    9.36 -def register_Ns3SqliteDataOutput_methods(root_module, cls):
    9.37 -    ## sqlite-data-output.h: ns3::SqliteDataOutput::SqliteDataOutput(ns3::SqliteDataOutput const & arg0) [copy constructor]
    9.38 -    cls.add_constructor([param('ns3::SqliteDataOutput const &', 'arg0')])
    9.39 -    ## sqlite-data-output.h: ns3::SqliteDataOutput::SqliteDataOutput() [constructor]
    9.40 -    cls.add_constructor([])
    9.41 -    ## sqlite-data-output.h: void ns3::SqliteDataOutput::Output(ns3::DataCollector & dc) [member function]
    9.42 -    cls.add_method('Output', 
    9.43 -                   'void', 
    9.44 -                   [param('ns3::DataCollector &', 'dc')], 
    9.45 -                   is_virtual=True)
    9.46 -    ## sqlite-data-output.h: void ns3::SqliteDataOutput::SetDBFile(std::string const file) [member function]
    9.47 -    cls.add_method('SetDBFile', 
    9.48 -                   'void', 
    9.49 -                   [param('std::string const', 'file')])
    9.50 -    ## sqlite-data-output.h: std::string ns3::SqliteDataOutput::GetDBFile() const [member function]
    9.51 -    cls.add_method('GetDBFile', 
    9.52 -                   'std::string', 
    9.53 -                   [], 
    9.54 -                   is_const=True)
    9.55 -    ## sqlite-data-output.h: void ns3::SqliteDataOutput::DoDispose() [member function]
    9.56 -    cls.add_method('DoDispose', 
    9.57 -                   'void', 
    9.58 -                   [], 
    9.59 -                   visibility='protected', is_virtual=True)
    9.60 -    return
    9.61 -
    9.62  def register_functions(root_module):
    9.63      module = root_module
    9.64      register_functions_ns3_internal(module.get_submodule('internal'), root_module)
    10.1 --- a/bindings/python/ns3_module_wifi.py	Tue Sep 02 10:45:06 2008 -0700
    10.2 +++ b/bindings/python/ns3_module_wifi.py	Tue Sep 02 11:28:03 2008 -0700
    10.3 @@ -49,10 +49,10 @@
    10.4      module.add_class('CompositePropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
    10.5      ## amrr-wifi-manager.h: ns3::AmrrWifiRemoteStation [class]
    10.6      module.add_class('AmrrWifiRemoteStation', parent=root_module['ns3::WifiRemoteStation'])
    10.7 +    ## adhoc-wifi-mac.h: ns3::AdhocWifiMac [class]
    10.8 +    module.add_class('AdhocWifiMac', parent=root_module['ns3::WifiMac'])
    10.9      ## propagation-loss-model.h: ns3::FriisPropagationLossModel [class]
   10.10      module.add_class('FriisPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   10.11 -    ## nqsta-wifi-mac.h: ns3::NqstaWifiMac [class]
   10.12 -    module.add_class('NqstaWifiMac', parent=root_module['ns3::WifiMac'])
   10.13      ## wifi-remote-station-manager.h: ns3::WifiRemoteStationManager [class]
   10.14      module.add_class('WifiRemoteStationManager', parent=root_module['ns3::Object'])
   10.15      ## wifi-mode.h: ns3::WifiModeValue [class]
   10.16 @@ -73,14 +73,14 @@
   10.17      module.add_class('AarfWifiRemoteStation', parent=root_module['ns3::ArfWifiRemoteStation'])
   10.18      ## propagation-delay-model.h: ns3::PropagationDelayModel [class]
   10.19      module.add_class('PropagationDelayModel', parent=root_module['ns3::Object'])
   10.20 -    ## adhoc-wifi-mac.h: ns3::AdhocWifiMac [class]
   10.21 -    module.add_class('AdhocWifiMac', parent=root_module['ns3::WifiMac'])
   10.22      ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel [class]
   10.23      module.add_class('JakesPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   10.24 +    ## wifi-net-device.h: ns3::WifiNetDevice [class]
   10.25 +    module.add_class('WifiNetDevice', parent=root_module['ns3::NetDevice'])
   10.26      ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel [class]
   10.27      module.add_class('ConstantSpeedPropagationDelayModel', parent=root_module['ns3::PropagationDelayModel'])
   10.28 -    ## wifi-net-device.h: ns3::WifiNetDevice [class]
   10.29 -    module.add_class('WifiNetDevice', parent=root_module['ns3::NetDevice'])
   10.30 +    ## nqsta-wifi-mac.h: ns3::NqstaWifiMac [class]
   10.31 +    module.add_class('NqstaWifiMac', parent=root_module['ns3::WifiMac'])
   10.32      ## propagation-loss-model.h: ns3::RandomPropagationLossModel [class]
   10.33      module.add_class('RandomPropagationLossModel', parent=root_module['ns3::PropagationLossModel'])
   10.34      ## propagation-delay-model.h: ns3::RandomPropagationDelayModel [class]
   10.35 @@ -157,8 +157,8 @@
   10.36      register_Ns3NqapWifiMac_methods(root_module, root_module['ns3::NqapWifiMac'])
   10.37      register_Ns3CompositePropagationLossModel_methods(root_module, root_module['ns3::CompositePropagationLossModel'])
   10.38      register_Ns3AmrrWifiRemoteStation_methods(root_module, root_module['ns3::AmrrWifiRemoteStation'])
   10.39 +    register_Ns3AdhocWifiMac_methods(root_module, root_module['ns3::AdhocWifiMac'])
   10.40      register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
   10.41 -    register_Ns3NqstaWifiMac_methods(root_module, root_module['ns3::NqstaWifiMac'])
   10.42      register_Ns3WifiRemoteStationManager_methods(root_module, root_module['ns3::WifiRemoteStationManager'])
   10.43      register_Ns3WifiModeValue_methods(root_module, root_module['ns3::WifiModeValue'])
   10.44      register_Ns3OnoeWifiManager_methods(root_module, root_module['ns3::OnoeWifiManager'])
   10.45 @@ -168,10 +168,10 @@
   10.46      register_Ns3ConstantRateWifiManager_methods(root_module, root_module['ns3::ConstantRateWifiManager'])
   10.47      register_Ns3AarfWifiRemoteStation_methods(root_module, root_module['ns3::AarfWifiRemoteStation'])
   10.48      register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel'])
   10.49 -    register_Ns3AdhocWifiMac_methods(root_module, root_module['ns3::AdhocWifiMac'])
   10.50      register_Ns3JakesPropagationLossModel_methods(root_module, root_module['ns3::JakesPropagationLossModel'])
   10.51 +    register_Ns3WifiNetDevice_methods(root_module, root_module['ns3::WifiNetDevice'])
   10.52      register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel'])
   10.53 -    register_Ns3WifiNetDevice_methods(root_module, root_module['ns3::WifiNetDevice'])
   10.54 +    register_Ns3NqstaWifiMac_methods(root_module, root_module['ns3::NqstaWifiMac'])
   10.55      register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel'])
   10.56      register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel'])
   10.57      register_Ns3AmrrWifiManager_methods(root_module, root_module['ns3::AmrrWifiManager'])
   10.58 @@ -1324,6 +1324,106 @@
   10.59                     visibility='private', is_virtual=True)
   10.60      return
   10.61  
   10.62 +def register_Ns3AdhocWifiMac_methods(root_module, cls):
   10.63 +    ## adhoc-wifi-mac.h: static ns3::TypeId ns3::AdhocWifiMac::GetTypeId() [member function]
   10.64 +    cls.add_method('GetTypeId', 
   10.65 +                   'ns3::TypeId', 
   10.66 +                   [], 
   10.67 +                   is_static=True)
   10.68 +    ## adhoc-wifi-mac.h: ns3::AdhocWifiMac::AdhocWifiMac() [constructor]
   10.69 +    cls.add_constructor([])
   10.70 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSlot(ns3::Time slotTime) [member function]
   10.71 +    cls.add_method('SetSlot', 
   10.72 +                   'void', 
   10.73 +                   [param('ns3::Time', 'slotTime')], 
   10.74 +                   is_virtual=True)
   10.75 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSifs(ns3::Time sifs) [member function]
   10.76 +    cls.add_method('SetSifs', 
   10.77 +                   'void', 
   10.78 +                   [param('ns3::Time', 'sifs')], 
   10.79 +                   is_virtual=True)
   10.80 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function]
   10.81 +    cls.add_method('SetEifsNoDifs', 
   10.82 +                   'void', 
   10.83 +                   [param('ns3::Time', 'eifsNoDifs')], 
   10.84 +                   is_virtual=True)
   10.85 +    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetSlot() const [member function]
   10.86 +    cls.add_method('GetSlot', 
   10.87 +                   'ns3::Time', 
   10.88 +                   [], 
   10.89 +                   is_const=True, is_virtual=True)
   10.90 +    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetSifs() const [member function]
   10.91 +    cls.add_method('GetSifs', 
   10.92 +                   'ns3::Time', 
   10.93 +                   [], 
   10.94 +                   is_const=True, is_virtual=True)
   10.95 +    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetEifsNoDifs() const [member function]
   10.96 +    cls.add_method('GetEifsNoDifs', 
   10.97 +                   'ns3::Time', 
   10.98 +                   [], 
   10.99 +                   is_const=True, is_virtual=True)
  10.100 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetWifiPhy(ns3::Ptr<ns3::WifiPhy> phy) [member function]
  10.101 +    cls.add_method('SetWifiPhy', 
  10.102 +                   'void', 
  10.103 +                   [param('ns3::Ptr< ns3::WifiPhy >', 'phy')], 
  10.104 +                   is_virtual=True)
  10.105 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetWifiRemoteStationManager(ns3::Ptr<ns3::WifiRemoteStationManager> stationManager) [member function]
  10.106 +    cls.add_method('SetWifiRemoteStationManager', 
  10.107 +                   'void', 
  10.108 +                   [param('ns3::Ptr< ns3::WifiRemoteStationManager >', 'stationManager')], 
  10.109 +                   is_virtual=True)
  10.110 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::Enqueue(ns3::Ptr<const ns3::Packet> packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function]
  10.111 +    cls.add_method('Enqueue', 
  10.112 +                   'void', 
  10.113 +                   [param('ns3::Ptr< const ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], 
  10.114 +                   is_virtual=True)
  10.115 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetForwardUpCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty> upCallback) [member function]
  10.116 +    cls.add_method('SetForwardUpCallback', 
  10.117 +                   'void', 
  10.118 +                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'upCallback')], 
  10.119 +                   is_virtual=True)
  10.120 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetLinkUpCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkUp) [member function]
  10.121 +    cls.add_method('SetLinkUpCallback', 
  10.122 +                   'void', 
  10.123 +                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], 
  10.124 +                   is_virtual=True)
  10.125 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetLinkDownCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkDown) [member function]
  10.126 +    cls.add_method('SetLinkDownCallback', 
  10.127 +                   'void', 
  10.128 +                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], 
  10.129 +                   is_virtual=True)
  10.130 +    ## adhoc-wifi-mac.h: ns3::Mac48Address ns3::AdhocWifiMac::GetAddress() const [member function]
  10.131 +    cls.add_method('GetAddress', 
  10.132 +                   'ns3::Mac48Address', 
  10.133 +                   [], 
  10.134 +                   is_const=True, is_virtual=True)
  10.135 +    ## adhoc-wifi-mac.h: ns3::Ssid ns3::AdhocWifiMac::GetSsid() const [member function]
  10.136 +    cls.add_method('GetSsid', 
  10.137 +                   'ns3::Ssid', 
  10.138 +                   [], 
  10.139 +                   is_const=True, is_virtual=True)
  10.140 +    ## adhoc-wifi-mac.h: ns3::Mac48Address ns3::AdhocWifiMac::GetBssid() const [member function]
  10.141 +    cls.add_method('GetBssid', 
  10.142 +                   'ns3::Mac48Address', 
  10.143 +                   [], 
  10.144 +                   is_const=True, is_virtual=True)
  10.145 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetAddress(ns3::Mac48Address address) [member function]
  10.146 +    cls.add_method('SetAddress', 
  10.147 +                   'void', 
  10.148 +                   [param('ns3::Mac48Address', 'address')], 
  10.149 +                   is_virtual=True)
  10.150 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSsid(ns3::Ssid ssid) [member function]
  10.151 +    cls.add_method('SetSsid', 
  10.152 +                   'void', 
  10.153 +                   [param('ns3::Ssid', 'ssid')], 
  10.154 +                   is_virtual=True)
  10.155 +    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::DoDispose() [member function]
  10.156 +    cls.add_method('DoDispose', 
  10.157 +                   'void', 
  10.158 +                   [], 
  10.159 +                   visibility='private', is_virtual=True)
  10.160 +    return
  10.161 +
  10.162  def register_Ns3FriisPropagationLossModel_methods(root_module, cls):
  10.163      ## propagation-loss-model.h: ns3::FriisPropagationLossModel::FriisPropagationLossModel(ns3::FriisPropagationLossModel const & arg0) [copy constructor]
  10.164      cls.add_constructor([param('ns3::FriisPropagationLossModel const &', 'arg0')])
  10.165 @@ -1372,122 +1472,6 @@
  10.166                     is_const=True, is_virtual=True)
  10.167      return
  10.168  
  10.169 -def register_Ns3NqstaWifiMac_methods(root_module, cls):
  10.170 -    ## nqsta-wifi-mac.h: static ns3::TypeId ns3::NqstaWifiMac::GetTypeId() [member function]
  10.171 -    cls.add_method('GetTypeId', 
  10.172 -                   'ns3::TypeId', 
  10.173 -                   [], 
  10.174 -                   is_static=True)
  10.175 -    ## nqsta-wifi-mac.h: ns3::NqstaWifiMac::NqstaWifiMac() [constructor]
  10.176 -    cls.add_constructor([])
  10.177 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSlot(ns3::Time slotTime) [member function]
  10.178 -    cls.add_method('SetSlot', 
  10.179 -                   'void', 
  10.180 -                   [param('ns3::Time', 'slotTime')], 
  10.181 -                   is_virtual=True)
  10.182 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSifs(ns3::Time sifs) [member function]
  10.183 -    cls.add_method('SetSifs', 
  10.184 -                   'void', 
  10.185 -                   [param('ns3::Time', 'sifs')], 
  10.186 -                   is_virtual=True)
  10.187 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function]
  10.188 -    cls.add_method('SetEifsNoDifs', 
  10.189 -                   'void', 
  10.190 -                   [param('ns3::Time', 'eifsNoDifs')], 
  10.191 -                   is_virtual=True)
  10.192 -    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetSlot() const [member function]
  10.193 -    cls.add_method('GetSlot', 
  10.194 -                   'ns3::Time', 
  10.195 -                   [], 
  10.196 -                   is_const=True, is_virtual=True)
  10.197 -    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetSifs() const [member function]
  10.198 -    cls.add_method('GetSifs', 
  10.199 -                   'ns3::Time', 
  10.200 -                   [], 
  10.201 -                   is_const=True, is_virtual=True)
  10.202 -    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetEifsNoDifs() const [member function]
  10.203 -    cls.add_method('GetEifsNoDifs', 
  10.204 -                   'ns3::Time', 
  10.205 -                   [], 
  10.206 -                   is_const=True, is_virtual=True)
  10.207 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetWifiPhy(ns3::Ptr<ns3::WifiPhy> phy) [member function]
  10.208 -    cls.add_method('SetWifiPhy', 
  10.209 -                   'void', 
  10.210 -                   [param('ns3::Ptr< ns3::WifiPhy >', 'phy')], 
  10.211 -                   is_virtual=True)
  10.212 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetWifiRemoteStationManager(ns3::Ptr<ns3::WifiRemoteStationManager> stationManager) [member function]
  10.213 -    cls.add_method('SetWifiRemoteStationManager', 
  10.214 -                   'void', 
  10.215 -                   [param('ns3::Ptr< ns3::WifiRemoteStationManager >', 'stationManager')], 
  10.216 -                   is_virtual=True)
  10.217 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::Enqueue(ns3::Ptr<const ns3::Packet> packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function]
  10.218 -    cls.add_method('Enqueue', 
  10.219 -                   'void', 
  10.220 -                   [param('ns3::Ptr< const ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], 
  10.221 -                   is_virtual=True)
  10.222 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetForwardUpCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty> upCallback) [member function]
  10.223 -    cls.add_method('SetForwardUpCallback', 
  10.224 -                   'void', 
  10.225 -                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'upCallback')], 
  10.226 -                   is_virtual=True)
  10.227 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetLinkUpCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkUp) [member function]
  10.228 -    cls.add_method('SetLinkUpCallback', 
  10.229 -                   'void', 
  10.230 -                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], 
  10.231 -                   is_virtual=True)
  10.232 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetLinkDownCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkDown) [member function]
  10.233 -    cls.add_method('SetLinkDownCallback', 
  10.234 -                   'void', 
  10.235 -                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], 
  10.236 -                   is_virtual=True)
  10.237 -    ## nqsta-wifi-mac.h: ns3::Mac48Address ns3::NqstaWifiMac::GetAddress() const [member function]
  10.238 -    cls.add_method('GetAddress', 
  10.239 -                   'ns3::Mac48Address', 
  10.240 -                   [], 
  10.241 -                   is_const=True, is_virtual=True)
  10.242 -    ## nqsta-wifi-mac.h: ns3::Ssid ns3::NqstaWifiMac::GetSsid() const [member function]
  10.243 -    cls.add_method('GetSsid', 
  10.244 -                   'ns3::Ssid', 
  10.245 -                   [], 
  10.246 -                   is_const=True, is_virtual=True)
  10.247 -    ## nqsta-wifi-mac.h: ns3::Mac48Address ns3::NqstaWifiMac::GetBssid() const [member function]
  10.248 -    cls.add_method('GetBssid', 
  10.249 -                   'ns3::Mac48Address', 
  10.250 -                   [], 
  10.251 -                   is_const=True, is_virtual=True)
  10.252 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetAddress(ns3::Mac48Address address) [member function]
  10.253 -    cls.add_method('SetAddress', 
  10.254 -                   'void', 
  10.255 -                   [param('ns3::Mac48Address', 'address')], 
  10.256 -                   is_virtual=True)
  10.257 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSsid(ns3::Ssid ssid) [member function]
  10.258 -    cls.add_method('SetSsid', 
  10.259 -                   'void', 
  10.260 -                   [param('ns3::Ssid', 'ssid')], 
  10.261 -                   is_virtual=True)
  10.262 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetMaxMissedBeacons(uint32_t missed) [member function]
  10.263 -    cls.add_method('SetMaxMissedBeacons', 
  10.264 -                   'void', 
  10.265 -                   [param('uint32_t', 'missed')])
  10.266 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetProbeRequestTimeout(ns3::Time timeout) [member function]
  10.267 -    cls.add_method('SetProbeRequestTimeout', 
  10.268 -                   'void', 
  10.269 -                   [param('ns3::Time', 'timeout')])
  10.270 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetAssocRequestTimeout(ns3::Time timeout) [member function]
  10.271 -    cls.add_method('SetAssocRequestTimeout', 
  10.272 -                   'void', 
  10.273 -                   [param('ns3::Time', 'timeout')])
  10.274 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::StartActiveAssociation() [member function]
  10.275 -    cls.add_method('StartActiveAssociation', 
  10.276 -                   'void', 
  10.277 -                   [])
  10.278 -    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::DoDispose() [member function]
  10.279 -    cls.add_method('DoDispose', 
  10.280 -                   'void', 
  10.281 -                   [], 
  10.282 -                   visibility='private', is_virtual=True)
  10.283 -    return
  10.284 -
  10.285  def register_Ns3WifiRemoteStationManager_methods(root_module, cls):
  10.286      ## wifi-remote-station-manager.h: ns3::WifiRemoteStationManager::WifiRemoteStationManager(ns3::WifiRemoteStationManager const & arg0) [copy constructor]
  10.287      cls.add_constructor([param('ns3::WifiRemoteStationManager const &', 'arg0')])
  10.288 @@ -1945,106 +1929,6 @@
  10.289                     is_pure_virtual=True, is_const=True, is_virtual=True)
  10.290      return
  10.291  
  10.292 -def register_Ns3AdhocWifiMac_methods(root_module, cls):
  10.293 -    ## adhoc-wifi-mac.h: static ns3::TypeId ns3::AdhocWifiMac::GetTypeId() [member function]
  10.294 -    cls.add_method('GetTypeId', 
  10.295 -                   'ns3::TypeId', 
  10.296 -                   [], 
  10.297 -                   is_static=True)
  10.298 -    ## adhoc-wifi-mac.h: ns3::AdhocWifiMac::AdhocWifiMac() [constructor]
  10.299 -    cls.add_constructor([])
  10.300 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSlot(ns3::Time slotTime) [member function]
  10.301 -    cls.add_method('SetSlot', 
  10.302 -                   'void', 
  10.303 -                   [param('ns3::Time', 'slotTime')], 
  10.304 -                   is_virtual=True)
  10.305 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSifs(ns3::Time sifs) [member function]
  10.306 -    cls.add_method('SetSifs', 
  10.307 -                   'void', 
  10.308 -                   [param('ns3::Time', 'sifs')], 
  10.309 -                   is_virtual=True)
  10.310 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function]
  10.311 -    cls.add_method('SetEifsNoDifs', 
  10.312 -                   'void', 
  10.313 -                   [param('ns3::Time', 'eifsNoDifs')], 
  10.314 -                   is_virtual=True)
  10.315 -    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetSlot() const [member function]
  10.316 -    cls.add_method('GetSlot', 
  10.317 -                   'ns3::Time', 
  10.318 -                   [], 
  10.319 -                   is_const=True, is_virtual=True)
  10.320 -    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetSifs() const [member function]
  10.321 -    cls.add_method('GetSifs', 
  10.322 -                   'ns3::Time', 
  10.323 -                   [], 
  10.324 -                   is_const=True, is_virtual=True)
  10.325 -    ## adhoc-wifi-mac.h: ns3::Time ns3::AdhocWifiMac::GetEifsNoDifs() const [member function]
  10.326 -    cls.add_method('GetEifsNoDifs', 
  10.327 -                   'ns3::Time', 
  10.328 -                   [], 
  10.329 -                   is_const=True, is_virtual=True)
  10.330 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetWifiPhy(ns3::Ptr<ns3::WifiPhy> phy) [member function]
  10.331 -    cls.add_method('SetWifiPhy', 
  10.332 -                   'void', 
  10.333 -                   [param('ns3::Ptr< ns3::WifiPhy >', 'phy')], 
  10.334 -                   is_virtual=True)
  10.335 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetWifiRemoteStationManager(ns3::Ptr<ns3::WifiRemoteStationManager> stationManager) [member function]
  10.336 -    cls.add_method('SetWifiRemoteStationManager', 
  10.337 -                   'void', 
  10.338 -                   [param('ns3::Ptr< ns3::WifiRemoteStationManager >', 'stationManager')], 
  10.339 -                   is_virtual=True)
  10.340 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::Enqueue(ns3::Ptr<const ns3::Packet> packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function]
  10.341 -    cls.add_method('Enqueue', 
  10.342 -                   'void', 
  10.343 -                   [param('ns3::Ptr< const ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], 
  10.344 -                   is_virtual=True)
  10.345 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetForwardUpCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty> upCallback) [member function]
  10.346 -    cls.add_method('SetForwardUpCallback', 
  10.347 -                   'void', 
  10.348 -                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'upCallback')], 
  10.349 -                   is_virtual=True)
  10.350 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetLinkUpCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkUp) [member function]
  10.351 -    cls.add_method('SetLinkUpCallback', 
  10.352 -                   'void', 
  10.353 -                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], 
  10.354 -                   is_virtual=True)
  10.355 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetLinkDownCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkDown) [member function]
  10.356 -    cls.add_method('SetLinkDownCallback', 
  10.357 -                   'void', 
  10.358 -                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], 
  10.359 -                   is_virtual=True)
  10.360 -    ## adhoc-wifi-mac.h: ns3::Mac48Address ns3::AdhocWifiMac::GetAddress() const [member function]
  10.361 -    cls.add_method('GetAddress', 
  10.362 -                   'ns3::Mac48Address', 
  10.363 -                   [], 
  10.364 -                   is_const=True, is_virtual=True)
  10.365 -    ## adhoc-wifi-mac.h: ns3::Ssid ns3::AdhocWifiMac::GetSsid() const [member function]
  10.366 -    cls.add_method('GetSsid', 
  10.367 -                   'ns3::Ssid', 
  10.368 -                   [], 
  10.369 -                   is_const=True, is_virtual=True)
  10.370 -    ## adhoc-wifi-mac.h: ns3::Mac48Address ns3::AdhocWifiMac::GetBssid() const [member function]
  10.371 -    cls.add_method('GetBssid', 
  10.372 -                   'ns3::Mac48Address', 
  10.373 -                   [], 
  10.374 -                   is_const=True, is_virtual=True)
  10.375 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetAddress(ns3::Mac48Address address) [member function]
  10.376 -    cls.add_method('SetAddress', 
  10.377 -                   'void', 
  10.378 -                   [param('ns3::Mac48Address', 'address')], 
  10.379 -                   is_virtual=True)
  10.380 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::SetSsid(ns3::Ssid ssid) [member function]
  10.381 -    cls.add_method('SetSsid', 
  10.382 -                   'void', 
  10.383 -                   [param('ns3::Ssid', 'ssid')], 
  10.384 -                   is_virtual=True)
  10.385 -    ## adhoc-wifi-mac.h: void ns3::AdhocWifiMac::DoDispose() [member function]
  10.386 -    cls.add_method('DoDispose', 
  10.387 -                   'void', 
  10.388 -                   [], 
  10.389 -                   visibility='private', is_virtual=True)
  10.390 -    return
  10.391 -
  10.392  def register_Ns3JakesPropagationLossModel_methods(root_module, cls):
  10.393      ## jakes-propagation-loss-model.h: ns3::JakesPropagationLossModel::JakesPropagationLossModel(ns3::JakesPropagationLossModel const & arg0) [copy constructor]
  10.394      cls.add_constructor([param('ns3::JakesPropagationLossModel const &', 'arg0')])
  10.395 @@ -2070,32 +1954,6 @@
  10.396                     [param('uint8_t', 'nOscillators')])
  10.397      return
  10.398  
  10.399 -def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
  10.400 -    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
  10.401 -    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
  10.402 -    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
  10.403 -    cls.add_method('GetTypeId', 
  10.404 -                   'ns3::TypeId', 
  10.405 -                   [], 
  10.406 -                   is_static=True)
  10.407 -    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
  10.408 -    cls.add_constructor([])
  10.409 -    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
  10.410 -    cls.add_method('GetDelay', 
  10.411 -                   'ns3::Time', 
  10.412 -                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
  10.413 -                   is_const=True, is_virtual=True)
  10.414 -    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
  10.415 -    cls.add_method('SetSpeed', 
  10.416 -                   'void', 
  10.417 -                   [param('double', 'speed')])
  10.418 -    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
  10.419 -    cls.add_method('GetSpeed', 
  10.420 -                   'double', 
  10.421 -                   [], 
  10.422 -                   is_const=True)
  10.423 -    return
  10.424 -
  10.425  def register_Ns3WifiNetDevice_methods(root_module, cls):
  10.426      ## wifi-net-device.h: ns3::WifiNetDevice::WifiNetDevice(ns3::WifiNetDevice const & arg0) [copy constructor]
  10.427      cls.add_constructor([param('ns3::WifiNetDevice const &', 'arg0')])
  10.428 @@ -2252,8 +2110,8 @@
  10.429                     'void', 
  10.430                     [param('ns3::Callback< bool, ns3::Ptr< ns3::NetDevice >, ns3::Ptr< ns3::Packet const >, unsigned short, ns3::Address const&, ns3::Address const&, ns3::NetDevice::PacketType >', 'cb')], 
  10.431                     is_virtual=True)
  10.432 -    ## wifi-net-device.h: bool ns3::WifiNetDevice::SupportsPromiscuous() const [member function]
  10.433 -    cls.add_method('SupportsPromiscuous', 
  10.434 +    ## wifi-net-device.h: bool ns3::WifiNetDevice::SupportsSendFrom() const [member function]
  10.435 +    cls.add_method('SupportsSendFrom', 
  10.436                     'bool', 
  10.437                     [], 
  10.438                     is_const=True, is_virtual=True)
  10.439 @@ -2264,6 +2122,148 @@
  10.440                     visibility='private', is_virtual=True)
  10.441      return
  10.442  
  10.443 +def register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, cls):
  10.444 +    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel(ns3::ConstantSpeedPropagationDelayModel const & arg0) [copy constructor]
  10.445 +    cls.add_constructor([param('ns3::ConstantSpeedPropagationDelayModel const &', 'arg0')])
  10.446 +    ## propagation-delay-model.h: static ns3::TypeId ns3::ConstantSpeedPropagationDelayModel::GetTypeId() [member function]
  10.447 +    cls.add_method('GetTypeId', 
  10.448 +                   'ns3::TypeId', 
  10.449 +                   [], 
  10.450 +                   is_static=True)
  10.451 +    ## propagation-delay-model.h: ns3::ConstantSpeedPropagationDelayModel::ConstantSpeedPropagationDelayModel() [constructor]
  10.452 +    cls.add_constructor([])
  10.453 +    ## propagation-delay-model.h: ns3::Time ns3::ConstantSpeedPropagationDelayModel::GetDelay(ns3::Ptr<ns3::MobilityModel> a, ns3::Ptr<ns3::MobilityModel> b) const [member function]
  10.454 +    cls.add_method('GetDelay', 
  10.455 +                   'ns3::Time', 
  10.456 +                   [param('ns3::Ptr< ns3::MobilityModel >', 'a'), param('ns3::Ptr< ns3::MobilityModel >', 'b')], 
  10.457 +                   is_const=True, is_virtual=True)
  10.458 +    ## propagation-delay-model.h: void ns3::ConstantSpeedPropagationDelayModel::SetSpeed(double speed) [member function]
  10.459 +    cls.add_method('SetSpeed', 
  10.460 +                   'void', 
  10.461 +                   [param('double', 'speed')])
  10.462 +    ## propagation-delay-model.h: double ns3::ConstantSpeedPropagationDelayModel::GetSpeed() const [member function]
  10.463 +    cls.add_method('GetSpeed', 
  10.464 +                   'double', 
  10.465 +                   [], 
  10.466 +                   is_const=True)
  10.467 +    return
  10.468 +
  10.469 +def register_Ns3NqstaWifiMac_methods(root_module, cls):
  10.470 +    ## nqsta-wifi-mac.h: static ns3::TypeId ns3::NqstaWifiMac::GetTypeId() [member function]
  10.471 +    cls.add_method('GetTypeId', 
  10.472 +                   'ns3::TypeId', 
  10.473 +                   [], 
  10.474 +                   is_static=True)
  10.475 +    ## nqsta-wifi-mac.h: ns3::NqstaWifiMac::NqstaWifiMac() [constructor]
  10.476 +    cls.add_constructor([])
  10.477 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSlot(ns3::Time slotTime) [member function]
  10.478 +    cls.add_method('SetSlot', 
  10.479 +                   'void', 
  10.480 +                   [param('ns3::Time', 'slotTime')], 
  10.481 +                   is_virtual=True)
  10.482 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSifs(ns3::Time sifs) [member function]
  10.483 +    cls.add_method('SetSifs', 
  10.484 +                   'void', 
  10.485 +                   [param('ns3::Time', 'sifs')], 
  10.486 +                   is_virtual=True)
  10.487 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function]
  10.488 +    cls.add_method('SetEifsNoDifs', 
  10.489 +                   'void', 
  10.490 +                   [param('ns3::Time', 'eifsNoDifs')], 
  10.491 +                   is_virtual=True)
  10.492 +    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetSlot() const [member function]
  10.493 +    cls.add_method('GetSlot', 
  10.494 +                   'ns3::Time', 
  10.495 +                   [], 
  10.496 +                   is_const=True, is_virtual=True)
  10.497 +    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetSifs() const [member function]
  10.498 +    cls.add_method('GetSifs', 
  10.499 +                   'ns3::Time', 
  10.500 +                   [], 
  10.501 +                   is_const=True, is_virtual=True)
  10.502 +    ## nqsta-wifi-mac.h: ns3::Time ns3::NqstaWifiMac::GetEifsNoDifs() const [member function]
  10.503 +    cls.add_method('GetEifsNoDifs', 
  10.504 +                   'ns3::Time', 
  10.505 +                   [], 
  10.506 +                   is_const=True, is_virtual=True)
  10.507 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetWifiPhy(ns3::Ptr<ns3::WifiPhy> phy) [member function]
  10.508 +    cls.add_method('SetWifiPhy', 
  10.509 +                   'void', 
  10.510 +                   [param('ns3::Ptr< ns3::WifiPhy >', 'phy')], 
  10.511 +                   is_virtual=True)
  10.512 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetWifiRemoteStationManager(ns3::Ptr<ns3::WifiRemoteStationManager> stationManager) [member function]
  10.513 +    cls.add_method('SetWifiRemoteStationManager', 
  10.514 +                   'void', 
  10.515 +                   [param('ns3::Ptr< ns3::WifiRemoteStationManager >', 'stationManager')], 
  10.516 +                   is_virtual=True)
  10.517 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::Enqueue(ns3::Ptr<const ns3::Packet> packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function]
  10.518 +    cls.add_method('Enqueue', 
  10.519 +                   'void', 
  10.520 +                   [param('ns3::Ptr< const ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], 
  10.521 +                   is_virtual=True)
  10.522 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetForwardUpCallback(ns3::Callback<void, ns3::Ptr<ns3::Packet>, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty> upCallback) [member function]
  10.523 +    cls.add_method('SetForwardUpCallback', 
  10.524 +                   'void', 
  10.525 +                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Mac48Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'upCallback')], 
  10.526 +                   is_virtual=True)
  10.527 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetLinkUpCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkUp) [member function]
  10.528 +    cls.add_method('SetLinkUpCallback', 
  10.529 +                   'void', 
  10.530 +                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], 
  10.531 +                   is_virtual=True)
  10.532 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetLinkDownCallback(ns3::Callback<void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> linkDown) [member function]
  10.533 +    cls.add_method('SetLinkDownCallback', 
  10.534 +                   'void', 
  10.535 +                   [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkDown')], 
  10.536 +                   is_virtual=True)
  10.537 +    ## nqsta-wifi-mac.h: ns3::Mac48Address ns3::NqstaWifiMac::GetAddress() const [member function]
  10.538 +    cls.add_method('GetAddress', 
  10.539 +                   'ns3::Mac48Address', 
  10.540 +                   [], 
  10.541 +                   is_const=True, is_virtual=True)
  10.542 +    ## nqsta-wifi-mac.h: ns3::Ssid ns3::NqstaWifiMac::GetSsid() const [member function]
  10.543 +    cls.add_method('GetSsid', 
  10.544 +                   'ns3::Ssid', 
  10.545 +                   [], 
  10.546 +                   is_const=True, is_virtual=True)
  10.547 +    ## nqsta-wifi-mac.h: ns3::Mac48Address ns3::NqstaWifiMac::GetBssid() const [member function]
  10.548 +    cls.add_method('GetBssid', 
  10.549 +                   'ns3::Mac48Address', 
  10.550 +                   [], 
  10.551 +                   is_const=True, is_virtual=True)
  10.552 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetAddress(ns3::Mac48Address address) [member function]
  10.553 +    cls.add_method('SetAddress', 
  10.554 +                   'void', 
  10.555 +                   [param('ns3::Mac48Address', 'address')], 
  10.556 +                   is_virtual=True)
  10.557 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetSsid(ns3::Ssid ssid) [member function]
  10.558 +    cls.add_method('SetSsid', 
  10.559 +                   'void', 
  10.560 +                   [param('ns3::Ssid', 'ssid')], 
  10.561 +                   is_virtual=True)
  10.562 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetMaxMissedBeacons(uint32_t missed) [member function]
  10.563 +    cls.add_method('SetMaxMissedBeacons', 
  10.564 +                   'void', 
  10.565 +                   [param('uint32_t', 'missed')])
  10.566 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetProbeRequestTimeout(ns3::Time timeout) [member function]
  10.567 +    cls.add_method('SetProbeRequestTimeout', 
  10.568 +                   'void', 
  10.569 +                   [param('ns3::Time', 'timeout')])
  10.570 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::SetAssocRequestTimeout(ns3::Time timeout) [member function]
  10.571 +    cls.add_method('SetAssocRequestTimeout', 
  10.572 +                   'void', 
  10.573 +                   [param('ns3::Time', 'timeout')])
  10.574 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::StartActiveAssociation() [member function]
  10.575 +    cls.add_method('StartActiveAssociation', 
  10.576 +                   'void', 
  10.577 +                   [])
  10.578 +    ## nqsta-wifi-mac.h: void ns3::NqstaWifiMac::DoDispose() [member function]
  10.579 +    cls.add_method('DoDispose', 
  10.580 +                   'void', 
  10.581 +                   [], 
  10.582 +                   visibility='private', is_virtual=True)
  10.583 +    return
  10.584 +
  10.585  def register_Ns3RandomPropagationLossModel_methods(root_module, cls):
  10.586      ## propagation-loss-model.h: ns3::RandomPropagationLossModel::RandomPropagationLossModel(ns3::RandomPropagationLossModel const & arg0) [copy constructor]
  10.587      cls.add_constructor([param('ns3::RandomPropagationLossModel const &', 'arg0')])
    11.1 --- a/src/devices/bridge/bridge-net-device.cc	Tue Sep 02 10:45:06 2008 -0700
    11.2 +++ b/src/devices/bridge/bridge-net-device.cc	Tue Sep 02 11:28:03 2008 -0700
    11.3 @@ -189,6 +189,14 @@
    11.4  BridgeNetDevice::AddBridgePort (Ptr<NetDevice> bridgePort)
    11.5  {
    11.6    NS_ASSERT (bridgePort != this);
    11.7 +  if (!Mac48Address::IsMatchingType (bridgePort->GetAddress ()))
    11.8 +    {
    11.9 +      NS_FATAL_ERROR ("Device does not support eui 48 addresses: cannot be added to bridge.");
   11.10 +    }
   11.11 +  if (!bridgePort->SupportsSendFrom ())
   11.12 +    {
   11.13 +      NS_FATAL_ERROR ("Device does not support SendFrom: cannot be added to bridge.");
   11.14 +    }
   11.15    if (m_address == Mac48Address ())
   11.16      {
   11.17        m_address = Mac48Address::ConvertFrom (bridgePort->GetAddress ());
   11.18 @@ -411,7 +419,7 @@
   11.19  }
   11.20  
   11.21  bool
   11.22 -BridgeNetDevice::SupportsPromiscuous () const
   11.23 +BridgeNetDevice::SupportsSendFrom () const
   11.24  {
   11.25    return true;
   11.26  }
    12.1 --- a/src/devices/bridge/bridge-net-device.h	Tue Sep 02 10:45:06 2008 -0700
    12.2 +++ b/src/devices/bridge/bridge-net-device.h	Tue Sep 02 11:28:03 2008 -0700
    12.3 @@ -106,7 +106,7 @@
    12.4    virtual bool NeedsArp (void) const;
    12.5    virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
    12.6    virtual void SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb);
    12.7 -  virtual bool SupportsPromiscuous () const;
    12.8 +  virtual bool SupportsSendFrom () const;
    12.9  
   12.10  protected:
   12.11    virtual void DoDispose (void);
    13.1 --- a/src/devices/csma/csma-net-device.cc	Tue Sep 02 10:45:06 2008 -0700
    13.2 +++ b/src/devices/csma/csma-net-device.cc	Tue Sep 02 11:28:03 2008 -0700
    13.3 @@ -979,7 +979,7 @@
    13.4  }
    13.5  
    13.6    bool 
    13.7 -CsmaNetDevice::SupportsPromiscuous () const
    13.8 +CsmaNetDevice::SupportsSendFrom () const
    13.9  {
   13.10    NS_LOG_FUNCTION_NOARGS ();
   13.11    return true;
    14.1 --- a/src/devices/csma/csma-net-device.h	Tue Sep 02 10:45:06 2008 -0700
    14.2 +++ b/src/devices/csma/csma-net-device.h	Tue Sep 02 11:28:03 2008 -0700
    14.3 @@ -385,7 +385,7 @@
    14.4  
    14.5  
    14.6    virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
    14.7 -  virtual bool SupportsPromiscuous (void) const;
    14.8 +  virtual bool SupportsSendFrom (void) const;
    14.9  
   14.10  protected:
   14.11    /**
    15.1 --- a/src/devices/point-to-point/point-to-point-net-device.cc	Tue Sep 02 10:45:06 2008 -0700
    15.2 +++ b/src/devices/point-to-point/point-to-point-net-device.cc	Tue Sep 02 11:28:03 2008 -0700
    15.3 @@ -241,7 +241,11 @@
    15.4  //
    15.5        m_rxTrace (packet);
    15.6        ProcessHeader(packet, protocol);
    15.7 -      m_rxCallback (this, packet, protocol, GetBroadcast ());
    15.8 +      m_rxCallback (this, packet, protocol, GetRemote ());
    15.9 +      if (!m_promiscCallback.IsNull ())
   15.10 +        {
   15.11 +          m_promiscCallback (this, packet, protocol, GetRemote (), GetAddress (), NetDevice::PACKET_HOST);
   15.12 +        }
   15.13      }
   15.14  }
   15.15  
   15.16 @@ -440,7 +444,7 @@
   15.17                                   const Address &dest, 
   15.18                                   uint16_t protocolNumber)
   15.19  {
   15.20 -  return Send (packet, dest, protocolNumber);
   15.21 +  return false;
   15.22  }
   15.23  
   15.24    Ptr<Node> 
   15.25 @@ -467,16 +471,34 @@
   15.26    m_rxCallback = cb;
   15.27  }
   15.28  
   15.29 -  void
   15.30 -PointToPointNetDevice::SetPromiscReceiveCallback (PromiscReceiveCallback cb)
   15.31 +void
   15.32 +PointToPointNetDevice::SetPromiscReceiveCallback (NetDevice::PromiscReceiveCallback cb)
   15.33  {
   15.34    NS_FATAL_ERROR ("not implemented");
   15.35 +  m_promiscCallback = cb;
   15.36  }
   15.37  
   15.38    bool
   15.39 -PointToPointNetDevice::SupportsPromiscuous (void) const
   15.40 +PointToPointNetDevice::SupportsSendFrom (void) const
   15.41  {
   15.42    return false;
   15.43  }
   15.44  
   15.45 +Address 
   15.46 +PointToPointNetDevice::GetRemote (void) const
   15.47 +{
   15.48 +  NS_ASSERT (m_channel->GetNDevices () == 2);
   15.49 +  for (uint32_t i = 0; i < m_channel->GetNDevices (); ++i)
   15.50 +    {
   15.51 +      Ptr<NetDevice> tmp = m_channel->GetDevice (i);
   15.52 +      if (tmp != this)
   15.53 +        {
   15.54 +          return tmp->GetAddress ();
   15.55 +        }
   15.56 +    }
   15.57 +  NS_ASSERT (false);
   15.58 +  // quiet compiler.
   15.59 +  return Address ();
   15.60 +}
   15.61 +
   15.62  } // namespace ns3
    16.1 --- a/src/devices/point-to-point/point-to-point-net-device.h	Tue Sep 02 10:45:06 2008 -0700
    16.2 +++ b/src/devices/point-to-point/point-to-point-net-device.h	Tue Sep 02 11:28:03 2008 -0700
    16.3 @@ -178,7 +178,7 @@
    16.4    virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
    16.5  
    16.6    virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
    16.7 -  virtual bool SupportsPromiscuous (void) const;
    16.8 +  virtual bool SupportsSendFrom (void) const;
    16.9  
   16.10  private:
   16.11  
   16.12 @@ -196,6 +196,11 @@
   16.13  
   16.14  private:
   16.15    /**
   16.16 +   * \returns the address of the remote device connected to this device
   16.17 +   * through the point to point channel.
   16.18 +   */
   16.19 +  Address GetRemote (void) const;
   16.20 +  /**
   16.21     * Adds the necessary headers and trailers to a packet of data in order to
   16.22     * respect the protocol implemented by the agent.
   16.23     */
   16.24 @@ -304,6 +309,7 @@
   16.25    Ptr<Node> m_node;
   16.26    Mac48Address m_address;
   16.27    NetDevice::ReceiveCallback m_rxCallback;
   16.28 +  NetDevice::PromiscReceiveCallback m_promiscCallback;
   16.29    uint32_t m_ifIndex;
   16.30    std::string m_name;
   16.31    bool m_linkUp;
    17.1 --- a/src/devices/wifi/wifi-net-device.cc	Tue Sep 02 10:45:06 2008 -0700
    17.2 +++ b/src/devices/wifi/wifi-net-device.cc	Tue Sep 02 11:28:03 2008 -0700
    17.3 @@ -359,7 +359,7 @@
    17.4  }
    17.5  
    17.6  bool
    17.7 -WifiNetDevice::SupportsPromiscuous (void) const
    17.8 +WifiNetDevice::SupportsSendFrom (void) const
    17.9  {
   17.10    return false; // TODO
   17.11  }
    18.1 --- a/src/devices/wifi/wifi-net-device.h	Tue Sep 02 10:45:06 2008 -0700
    18.2 +++ b/src/devices/wifi/wifi-net-device.h	Tue Sep 02 11:28:03 2008 -0700
    18.3 @@ -103,7 +103,7 @@
    18.4  
    18.5    virtual bool SendFrom(Ptr<Packet> packet, const Address& source, const Address& dest, uint16_t protocolNumber);
    18.6    virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
    18.7 -  virtual bool SupportsPromiscuous (void) const;
    18.8 +  virtual bool SupportsSendFrom (void) const;
    18.9  
   18.10  private:
   18.11    virtual void DoDispose (void);
    19.1 --- a/src/node/net-device.h	Tue Sep 02 10:45:06 2008 -0700
    19.2 +++ b/src/node/net-device.h	Tue Sep 02 11:28:03 2008 -0700
    19.3 @@ -314,7 +314,7 @@
    19.4    /**
    19.5     * \return true if this interface supports a promiscuous mode, false otherwise.
    19.6     */
    19.7 -  virtual bool SupportsPromiscuous (void) const = 0;
    19.8 +  virtual bool SupportsSendFrom (void) const = 0;
    19.9  
   19.10  };
   19.11  
    20.1 --- a/src/node/node.cc	Tue Sep 02 10:45:06 2008 -0700
    20.2 +++ b/src/node/node.cc	Tue Sep 02 11:28:03 2008 -0700
    20.3 @@ -184,7 +184,7 @@
    20.4                 i != m_devices.end (); i++)
    20.5              {
    20.6                Ptr<NetDevice> dev = *i;
    20.7 -              if (dev->SupportsPromiscuous ())
    20.8 +              if (dev->SupportsSendFrom ())
    20.9                  {
   20.10                    dev->SetPromiscReceiveCallback (MakeCallback (&Node::PromiscReceiveFromDevice, this));
   20.11                  }
   20.12 @@ -192,7 +192,7 @@
   20.13          }
   20.14        else
   20.15          {
   20.16 -          if (device->SupportsPromiscuous ())
   20.17 +          if (device->SupportsSendFrom ())
   20.18              {
   20.19                device->SetPromiscReceiveCallback (MakeCallback (&Node::PromiscReceiveFromDevice, this));
   20.20              }
    21.1 --- a/src/node/simple-net-device.cc	Tue Sep 02 10:45:06 2008 -0700
    21.2 +++ b/src/node/simple-net-device.cc	Tue Sep 02 11:28:03 2008 -0700
    21.3 @@ -51,15 +51,23 @@
    21.4      {
    21.5        packetType = NetDevice::PACKET_HOST;
    21.6      }
    21.7 -  else if (to == Mac48Address::GetBroadcast ())
    21.8 +  else if (to.IsBroadcast ())
    21.9      {
   21.10        packetType = NetDevice::PACKET_HOST;
   21.11      }
   21.12 -  else
   21.13 +  else if (to.IsMulticast ())
   21.14      {
   21.15 -      NS_FATAL_ERROR ("Weird packet destination " << to);
   21.16 +      packetType = NetDevice::PACKET_MULTICAST;
   21.17 +    }
   21.18 +  else 
   21.19 +    {
   21.20 +      packetType = NetDevice::PACKET_OTHERHOST;
   21.21      }
   21.22    m_rxCallback (this, packet, protocol, from);
   21.23 +  if (!m_promiscCallback.IsNull ())
   21.24 +    {
   21.25 +      m_promiscCallback (this, packet, protocol, from, to, packetType);
   21.26 +    }
   21.27  }
   21.28  
   21.29  void 
   21.30 @@ -203,13 +211,13 @@
   21.31  void
   21.32  SimpleNetDevice::SetPromiscReceiveCallback (PromiscReceiveCallback cb)
   21.33  {
   21.34 -  NS_FATAL_ERROR ("Not supported");
   21.35 +  m_promiscCallback = cb;
   21.36  }
   21.37  
   21.38  bool
   21.39 -SimpleNetDevice::SupportsPromiscuous (void) const
   21.40 +SimpleNetDevice::SupportsSendFrom (void) const
   21.41  {
   21.42 -  return false;
   21.43 +  return true;
   21.44  }
   21.45  
   21.46  } // namespace ns3
    22.1 --- a/src/node/simple-net-device.h	Tue Sep 02 10:45:06 2008 -0700
    22.2 +++ b/src/node/simple-net-device.h	Tue Sep 02 11:28:03 2008 -0700
    22.3 @@ -69,13 +69,14 @@
    22.4    virtual bool NeedsArp (void) const;
    22.5    virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
    22.6    virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb);
    22.7 -  virtual bool SupportsPromiscuous (void) const;
    22.8 +  virtual bool SupportsSendFrom (void) const;
    22.9  
   22.10  protected:
   22.11    virtual void DoDispose (void);
   22.12  private:
   22.13    Ptr<SimpleChannel> m_channel;
   22.14    NetDevice::ReceiveCallback m_rxCallback;
   22.15 +  NetDevice::PromiscReceiveCallback m_promiscCallback;
   22.16    Ptr<Node> m_node;
   22.17    uint16_t m_mtu;
   22.18    std::string m_name;