View | Details | Raw Unified | Return to bug 63
Collapse All | Expand All

(-)a/bindings/python/ns3_module_list_routing.py (-2 / +2 lines)
 Lines 90-99   def register_Ns3Ipv4ListRouting_methods( Link Here 
90
                   'ns3::Ptr< ns3::Ipv4Route >', 
90
                   'ns3::Ptr< ns3::Ipv4Route >', 
91
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
91
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
92
                   is_virtual=True)
92
                   is_virtual=True)
93
    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
93
    ## ipv4-list-routing.h: bool ns3::Ipv4ListRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
94
    cls.add_method('RouteInput', 
94
    cls.add_method('RouteInput', 
95
                   'bool', 
95
                   'bool', 
96
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
96
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
97
                   is_virtual=True)
97
                   is_virtual=True)
98
    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
98
    ## ipv4-list-routing.h: void ns3::Ipv4ListRouting::NotifyInterfaceUp(uint32_t interface) [member function]
99
    cls.add_method('NotifyInterfaceUp', 
99
    cls.add_method('NotifyInterfaceUp', 
(-)a/bindings/python/ns3_module_node.py (-2 / +12 lines)
 Lines 2681-2686   def register_Ns3Ipv4_methods(root_module Link Here 
2681
                   'void', 
2681
                   'void', 
2682
                   [param('uint32_t', 'interface')], 
2682
                   [param('uint32_t', 'interface')], 
2683
                   is_pure_virtual=True, is_virtual=True)
2683
                   is_pure_virtual=True, is_virtual=True)
2684
    ## ipv4.h: bool ns3::Ipv4::IsForwarding(uint32_t interface) const [member function]
2685
    cls.add_method('IsForwarding', 
2686
                   'bool', 
2687
                   [param('uint32_t', 'interface')], 
2688
                   is_pure_virtual=True, is_const=True, is_virtual=True)
2689
    ## ipv4.h: void ns3::Ipv4::SetForwarding(uint32_t interface, bool val) [member function]
2690
    cls.add_method('SetForwarding', 
2691
                   'void', 
2692
                   [param('uint32_t', 'interface'), param('bool', 'val')], 
2693
                   is_pure_virtual=True, is_virtual=True)
2684
    ## ipv4.h: void ns3::Ipv4::SetIpForward(bool forward) [member function]
2694
    ## ipv4.h: void ns3::Ipv4::SetIpForward(bool forward) [member function]
2685
    cls.add_method('SetIpForward', 
2695
    cls.add_method('SetIpForward', 
2686
                   'void', 
2696
                   'void', 
 Lines 2720-2729   def register_Ns3Ipv4RoutingProtocol_meth Link Here 
2720
                   'ns3::Ptr< ns3::Ipv4Route >', 
2730
                   'ns3::Ptr< ns3::Ipv4Route >', 
2721
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
2731
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
2722
                   is_pure_virtual=True, is_virtual=True)
2732
                   is_pure_virtual=True, is_virtual=True)
2723
    ## ipv4-routing-protocol.h: bool ns3::Ipv4RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
2733
    ## ipv4-routing-protocol.h: bool ns3::Ipv4RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
2724
    cls.add_method('RouteInput', 
2734
    cls.add_method('RouteInput', 
2725
                   'bool', 
2735
                   'bool', 
2726
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
2736
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
2727
                   is_pure_virtual=True, is_virtual=True)
2737
                   is_pure_virtual=True, is_virtual=True)
2728
    ## ipv4-routing-protocol.h: void ns3::Ipv4RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
2738
    ## ipv4-routing-protocol.h: void ns3::Ipv4RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
2729
    cls.add_method('NotifyInterfaceUp', 
2739
    cls.add_method('NotifyInterfaceUp', 
(-)a/bindings/python/ns3_module_olsr.py (-2 / +2 lines)
 Lines 760-769   def register_Ns3OlsrRoutingProtocol_meth Link Here 
760
                   'ns3::Ptr< ns3::Ipv4Route >', 
760
                   'ns3::Ptr< ns3::Ipv4Route >', 
761
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
761
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
762
                   visibility='private', is_virtual=True)
762
                   visibility='private', is_virtual=True)
763
    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
763
    ## olsr-routing-protocol.h: bool ns3::olsr::RoutingProtocol::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
764
    cls.add_method('RouteInput', 
764
    cls.add_method('RouteInput', 
765
                   'bool', 
765
                   'bool', 
766
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
766
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
767
                   visibility='private', is_virtual=True)
767
                   visibility='private', is_virtual=True)
768
    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
768
    ## olsr-routing-protocol.h: void ns3::olsr::RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
769
    cls.add_method('NotifyInterfaceUp', 
769
    cls.add_method('NotifyInterfaceUp', 
(-)a/bindings/python/ns3_module_static_routing.py (-2 / +2 lines)
 Lines 206-215   def register_Ns3Ipv4StaticRouting_method Link Here 
206
                   'ns3::Ptr< ns3::Ipv4Route >', 
206
                   'ns3::Ptr< ns3::Ipv4Route >', 
207
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
207
                   [param('ns3::Ipv4Header const &', 'header'), param('uint32_t', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
208
                   is_virtual=True)
208
                   is_virtual=True)
209
    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
209
    ## ipv4-static-routing.h: bool ns3::Ipv4StaticRouting::RouteInput(ns3::Ptr<ns3::Packet const> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
210
    cls.add_method('RouteInput', 
210
    cls.add_method('RouteInput', 
211
                   'bool', 
211
                   'bool', 
212
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
212
                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
213
                   is_virtual=True)
213
                   is_virtual=True)
214
    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
214
    ## ipv4-static-routing.h: void ns3::Ipv4StaticRouting::NotifyInterfaceUp(uint32_t interface) [member function]
215
    cls.add_method('NotifyInterfaceUp', 
215
    cls.add_method('NotifyInterfaceUp', 
(-)a/src/internet-stack/ipv4-interface.cc (+15 lines)
 Lines 56-61   Ipv4Interface::GetTypeId (void) Link Here 
56
 */
56
 */
57
Ipv4Interface::Ipv4Interface () 
57
Ipv4Interface::Ipv4Interface () 
58
  : m_ifup (false),
58
  : m_ifup (false),
59
    m_forwarding (true),
59
    m_metric (1),
60
    m_metric (1),
60
    m_node (0), 
61
    m_node (0), 
61
    m_device (0),
62
    m_device (0),
 Lines 158-163   Ipv4Interface::SetDown (void) Link Here 
158
{
159
{
159
  NS_LOG_FUNCTION_NOARGS ();
160
  NS_LOG_FUNCTION_NOARGS ();
160
  m_ifup = false;
161
  m_ifup = false;
162
}
163
164
bool 
165
Ipv4Interface::IsForwarding (void) const
166
{
167
  NS_LOG_FUNCTION_NOARGS ();
168
  return m_forwarding;
169
}
170
171
void 
172
Ipv4Interface::SetForwarding (bool val)
173
{
174
  NS_LOG_FUNCTION_NOARGS ();
175
  m_forwarding = val;
161
}
176
}
162
177
163
void
178
void
(-)a/src/internet-stack/ipv4-interface.h (+11 lines)
 Lines 106-111   public: Link Here 
106
  void SetDown (void);
106
  void SetDown (void);
107
107
108
  /**
108
  /**
109
   * \returns true if this interface is enabled for IP forwarding of input datagrams
110
   */
111
  bool IsForwarding (void) const;
112
  
113
  /**
114
   * \param val Whether to enable or disable IP forwarding for input datagrams
115
   */
116
  void SetForwarding (bool val);
117
118
  /**
109
   * \param p packet to send
119
   * \param p packet to send
110
   * \param dest next hop address of packet.
120
   * \param dest next hop address of packet.
111
   *
121
   *
 Lines 146-151   private: Link Here 
146
  typedef std::list<Ipv4InterfaceAddress>::iterator Ipv4InterfaceAddressListI;
156
  typedef std::list<Ipv4InterfaceAddress>::iterator Ipv4InterfaceAddressListI;
147
157
148
  bool m_ifup;
158
  bool m_ifup;
159
  bool m_forwarding;  // IN_DEV_FORWARD
149
  uint16_t m_metric;
160
  uint16_t m_metric;
150
  Ipv4InterfaceAddressList m_ifaddrs;
161
  Ipv4InterfaceAddressList m_ifaddrs;
151
  Ptr<Node> m_node;
162
  Ptr<Node> m_node;
(-)a/src/internet-stack/ipv4-l3-protocol.cc (-1 / +33 lines)
 Lines 251-256   Ipv4L3Protocol::AddInterface (Ptr<NetDev Link Here 
251
  Ptr<Ipv4Interface> interface = CreateObject<Ipv4Interface> ();
251
  Ptr<Ipv4Interface> interface = CreateObject<Ipv4Interface> ();
252
  interface->SetNode (m_node);
252
  interface->SetNode (m_node);
253
  interface->SetDevice (device);
253
  interface->SetDevice (device);
254
  interface->SetForwarding (m_ipForward);
254
  return AddIpv4Interface (interface);
255
  return AddIpv4Interface (interface);
255
}
256
}
256
257
 Lines 412-418   Ipv4L3Protocol::Receive( Ptr<NetDevice> Link Here 
412
    MakeCallback (&Ipv4L3Protocol::IpForward, this),
413
    MakeCallback (&Ipv4L3Protocol::IpForward, this),
413
    MakeCallback (&Ipv4L3Protocol::IpMulticastForward, this),
414
    MakeCallback (&Ipv4L3Protocol::IpMulticastForward, this),
414
    MakeCallback (&Ipv4L3Protocol::LocalDeliver, this),
415
    MakeCallback (&Ipv4L3Protocol::LocalDeliver, this),
415
    MakeNullCallback <void, Ptr<const Packet>, const Ipv4Header &> ()
416
    MakeCallback (&Ipv4L3Protocol::RouteInputError, this)
416
  );
417
  );
417
418
418
}
419
}
 Lines 845-860   Ipv4L3Protocol::SetDown (uint32_t ifaceI Link Here 
845
    }
846
    }
846
}
847
}
847
848
849
bool 
850
Ipv4L3Protocol::IsForwarding (uint32_t i) const
851
{
852
  NS_LOG_FUNCTION (this << i);
853
  Ptr<Ipv4Interface> interface = GetInterface (i);
854
  NS_LOG_LOGIC ("Forwarding state: " << interface->IsForwarding ());
855
  return interface->IsForwarding ();
856
}
857
858
void 
859
Ipv4L3Protocol::SetForwarding (uint32_t i, bool val)
860
{
861
  NS_LOG_FUNCTION (this << i);
862
  Ptr<Ipv4Interface> interface = GetInterface (i);
863
  interface->SetForwarding (val);
864
}
865
848
Ptr<NetDevice>
866
Ptr<NetDevice>
849
Ipv4L3Protocol::GetNetDevice (uint32_t i)
867
Ipv4L3Protocol::GetNetDevice (uint32_t i)
850
{
868
{
869
  NS_LOG_FUNCTION (this << i);
851
  return GetInterface (i)-> GetDevice ();
870
  return GetInterface (i)-> GetDevice ();
852
}
871
}
853
872
854
void 
873
void 
855
Ipv4L3Protocol::SetIpForward (bool forward) 
874
Ipv4L3Protocol::SetIpForward (bool forward) 
856
{
875
{
876
  NS_LOG_FUNCTION (this << forward);
857
  m_ipForward = forward;
877
  m_ipForward = forward;
878
  for (Ipv4InterfaceList::const_iterator i = m_interfaces.begin (); i != m_interfaces.end (); i++)
879
    {
880
      (*i)->SetForwarding (forward);
881
    }
858
}
882
}
859
883
860
bool 
884
bool 
 Lines 863-867   Ipv4L3Protocol::GetIpForward (void) cons Link Here 
863
  return m_ipForward;
887
  return m_ipForward;
864
}
888
}
865
889
890
void
891
Ipv4L3Protocol::RouteInputError (Ptr<const Packet> p, const Ipv4Header & ipHeader, Socket::SocketErrno sockErrno)
892
{
893
  NS_LOG_FUNCTION (this << p << ipHeader << sockErrno);
894
  NS_LOG_LOGIC ("Route input failure-- dropping packet to " << ipHeader << " with errno " << sockErrno); 
895
  m_dropTrace (p);
896
}
897
866
898
867
}//namespace ns3
899
}//namespace ns3
(-)a/src/internet-stack/ipv4-l3-protocol.h (+4 lines)
 Lines 152-157   public: Link Here 
152
  bool IsUp (uint32_t i) const;
152
  bool IsUp (uint32_t i) const;
153
  void SetUp (uint32_t i);
153
  void SetUp (uint32_t i);
154
  void SetDown (uint32_t i);
154
  void SetDown (uint32_t i);
155
  bool IsForwarding (uint32_t i) const;
156
  void SetForwarding (uint32_t i, bool val);
155
157
156
  Ptr<NetDevice> GetNetDevice (uint32_t i);
158
  Ptr<NetDevice> GetNetDevice (uint32_t i);
157
159
 Lines 198-203   private: Link Here 
198
                      const Ipv4Header &header);
200
                      const Ipv4Header &header);
199
201
200
  void LocalDeliver (Ptr<const Packet> p, Ipv4Header const&ip, uint32_t iif);
202
  void LocalDeliver (Ptr<const Packet> p, Ipv4Header const&ip, uint32_t iif);
203
  void RouteInputError (Ptr<const Packet> p, const Ipv4Header & ipHeader, Socket::SocketErrno sockErrno);
204
201
  uint32_t AddIpv4Interface (Ptr<Ipv4Interface> interface);
205
  uint32_t AddIpv4Interface (Ptr<Ipv4Interface> interface);
202
  void SetupLoopback (void);
206
  void SetupLoopback (void);
203
  Ptr<Icmpv4L4Protocol> GetIcmp (void) const;
207
  Ptr<Icmpv4L4Protocol> GetIcmp (void) const;
(-)a/src/node/ipv4-routing-protocol.h (-1 / +1 lines)
 Lines 51-57   public: Link Here 
51
  typedef Callback<void, Ptr<Ipv4Route>, Ptr<const Packet>, const Ipv4Header &> UnicastForwardCallback;
51
  typedef Callback<void, Ptr<Ipv4Route>, Ptr<const Packet>, const Ipv4Header &> UnicastForwardCallback;
52
  typedef Callback<void, Ptr<Ipv4MulticastRoute>, Ptr<const Packet>, const Ipv4Header &> MulticastForwardCallback;
52
  typedef Callback<void, Ptr<Ipv4MulticastRoute>, Ptr<const Packet>, const Ipv4Header &> MulticastForwardCallback;
53
  typedef Callback<void, Ptr<const Packet>, const Ipv4Header &, uint32_t > LocalDeliverCallback;
53
  typedef Callback<void, Ptr<const Packet>, const Ipv4Header &, uint32_t > LocalDeliverCallback;
54
  typedef Callback<void, Ptr<const Packet>, const Ipv4Header &> ErrorCallback;
54
  typedef Callback<void, Ptr<const Packet>, const Ipv4Header &, Socket::SocketErrno > ErrorCallback;
55
  
55
  
56
  /**
56
  /**
57
   * \brief Query routing cache for an existing route, for an outbound packet
57
   * \brief Query routing cache for an existing route, for an outbound packet
(-)a/src/node/ipv4.cc (-1 / +1 lines)
 Lines 32-38   Ipv4::GetTypeId (void) Link Here 
32
{
32
{
33
  static TypeId tid = TypeId ("ns3::Ipv4")
33
  static TypeId tid = TypeId ("ns3::Ipv4")
34
    .SetParent<Object> ()
34
    .SetParent<Object> ()
35
    .AddAttribute ("IpForward", "If enabled, node can act as unicast router.",
35
    .AddAttribute ("IpForward", "Globally enable or disable IP forwarding for all current and future Ipv4 devices.",
36
                   BooleanValue (true),
36
                   BooleanValue (true),
37
                   MakeBooleanAccessor (&Ipv4::SetIpForward,
37
                   MakeBooleanAccessor (&Ipv4::SetIpForward,
38
                                        &Ipv4::GetIpForward),
38
                                        &Ipv4::GetIpForward),
(-)a/src/node/ipv4.h (+14 lines)
 Lines 235-240   public: Link Here 
235
   */
235
   */
236
  virtual void SetDown (uint32_t interface) = 0;
236
  virtual void SetDown (uint32_t interface) = 0;
237
237
238
  /**
239
   * \param interface Interface number of Ipv4 interface
240
   * \returns true if IP forwarding enabled for input datagrams on this device
241
   */
242
  virtual bool IsForwarding (uint32_t interface) const = 0;
243
244
  /**
245
   * \param interface Interface number of Ipv4 interface
246
   * \param val Value to set the forwarding flag
247
   * 
248
   * If set to true, IP forwarding is enabled for input datagrams on this device
249
   */
250
  virtual void SetForwarding (uint32_t interface, bool val) = 0;
251
238
  static const uint32_t IF_ANY = 0xffffffff;
252
  static const uint32_t IF_ANY = 0xffffffff;
239
253
240
private:
254
private:
(-)a/src/routing/list-routing/ipv4-list-routing.cc (+9 lines)
 Lines 104-109   Ipv4ListRouting::RouteInput (Ptr<const P Link Here 
104
  NS_LOG_LOGIC ("RouteInput logic for node: " << m_ipv4->GetObject<Node> ()->GetId ());
104
  NS_LOG_LOGIC ("RouteInput logic for node: " << m_ipv4->GetObject<Node> ()->GetId ());
105
105
106
  NS_ASSERT (m_ipv4 != 0);
106
  NS_ASSERT (m_ipv4 != 0);
107
  // Check if input device supports IP 
108
  NS_ASSERT (m_ipv4->GetInterfaceForDevice (idev) >= 0);
107
  uint32_t iif = m_ipv4->GetInterfaceForDevice (idev); 
109
  uint32_t iif = m_ipv4->GetInterfaceForDevice (idev); 
108
110
109
  // Multicast recognition; handle local delivery here
111
  // Multicast recognition; handle local delivery here
 Lines 176-181   Ipv4ListRouting::RouteInput (Ptr<const P Link Here 
176
            }
178
            }
177
          NS_LOG_LOGIC ("Address "<< addr << " not a match");
179
          NS_LOG_LOGIC ("Address "<< addr << " not a match");
178
        }
180
        }
181
    }
182
  // Check if input device supports IP forwarding
183
  if (m_ipv4->IsForwarding (iif) == false)
184
    {
185
      NS_LOG_LOGIC ("Forwarding disabled for this interface");
186
      ecb (p, header, Socket::ERROR_NOROUTETOHOST);
187
      return false;
179
    }
188
    }
180
  // Next, try to find a route
189
  // Next, try to find a route
181
  for (Ipv4RoutingProtocolList::const_iterator rprotoIter =
190
  for (Ipv4RoutingProtocolList::const_iterator rprotoIter =

Return to bug 63