[Ns-developers] ns-3-ip routing review request
Faker Moatamri
faker.moatamri at sophia.inria.fr
Fri May 15 01:17:51 PDT 2009
Tom Henderson wrote:
> I'd like to ask for review of the latest phase of the proposed Ipv4
> rework, staged at http://code.nsnam.org/tomh/ns-3-ip-routing/
>
> In summary, this tree implements the following main changes:
> 1) split out existing Ipv4 routing from class Ipv4 (and also from
> implementation class Ipv4L3Protocol) into a public Ipv4StaticRouting
> class
>
> 2) make the current Ipv4 routing behavior (a prioritized list of
> routing protocols) an instance of an Ipv4RoutingProtocol called an
> Ipv4ListRouting object (which remains the default ns-3 routing protocol)
>
> 3) change the function signatures in abstract base class
> Ipv4RoutingProtocol to better match Linux equivalents ip_route_input()
> and ip_route_output()
>
> 4) introduce new reference-counted classes Ipv4Route and
> Ipv4MulticastRoute that align with similar Linux routing structures
>
> There isn't much helper API-visible change from all of this, except
> that I created a new helper object Ipv4StaticRoutingHelper that
> subsumes the previous StaticMulticastRoutingHelper.
>
> code review location:
> -----------------
> http://codereview.appspot.com/65047/show
>
> Documentation:
> --------------
> I tried to capture the main API issues with this patch in the
> CHANGES.html that is currently viewable here:
> http://code.nsnam.org/tomh/ns-3-ip-routing/raw-file/68dc18d9ece4/CHANGES.html
>
>
> Some recent big-picture documentation on these changes was previously
> posted at:
> http://www.nsnam.org/~tomh/manual/manual.html#SEC1
> although it is slightly stale now.
>
> Status and caveats:
> ----------------
> Regression will fail on one test (simple-point-to-point-olsr) because
> I fixed a bug in generating Ipv4 header ID field that changed the
> traces slightly. Otherwise, all the regression tests pass (except for
> python one that was not tested).
>
> Python bindings not refreshed or tested yet.
>
> The implementation in src/internet-stack has a few XXX that need some
> cleanup.
>
> No new test code is written for this new code yet; existing regression
> tests were used to test this code.
>
> File changes:
> -----------
>
> -- Main new public API-related changes
>
> M src/node/ipv4-route.cc
> M src/node/ipv4-route.h
> M src/node/ipv4.cc
> M src/node/ipv4.h
>
> -- New files
>
> A src/helper/ipv4-static-routing-helper.cc
> A src/helper/ipv4-static-routing-helper.h
> A src/internet-stack/ipv4-list-routing-impl.cc
> A src/internet-stack/ipv4-list-routing-impl.h
> A src/internet-stack/ipv4-static-routing-impl.cc
> A src/internet-stack/ipv4-static-routing-impl.h
> A src/node/ipv4-list-routing.cc
> A src/node/ipv4-list-routing.h
> A src/node/ipv4-routing-protocol.cc
> A src/node/ipv4-routing-protocol.h
> A src/node/ipv4-routing-table-entry.cc
> A src/node/ipv4-routing-table-entry.h
> A src/node/ipv4-static-routing.cc
> A src/node/ipv4-static-routing.h
>
> -- Deleted files
>
> R src/helper/static-multicast-route-helper.cc
> R src/helper/static-multicast-route-helper.h
> R src/internet-stack/ipv4-static-routing.cc
> R src/internet-stack/ipv4-static-routing.h
>
> -- Other touched files (mostly for alignment with the above)
>
> M examples/csma-multicast.cc
> M examples/emu-ping.cc
> M examples/static-routing-slash32.cc
> M src/applications/packet-sink/packet-sink.cc
> M src/applications/udp-echo/udp-echo-server.cc
> M src/devices/tap-bridge/tap-bridge.cc
> M src/helper/internet-stack-helper.cc
> M src/helper/internet-stack-helper.h
> M src/helper/ipv4-address-helper.cc
> M src/helper/ipv4-interface-container.h
> M src/helper/olsr-helper.cc
> M src/helper/packet-sink-helper.cc
> M src/helper/wscript
> M src/internet-stack/icmpv4-l4-protocol.cc
> M src/internet-stack/icmpv4-l4-protocol.h
> M src/internet-stack/internet-stack.cc
> M src/internet-stack/internet-stack.h
> M src/internet-stack/ipv4-global-routing.cc
> M src/internet-stack/ipv4-global-routing.h
> M src/internet-stack/ipv4-interface.cc
> M src/internet-stack/ipv4-interface.h
> M src/internet-stack/ipv4-l3-protocol.cc
> M src/internet-stack/ipv4-l3-protocol.h
> M src/internet-stack/ipv4-raw-socket-impl.cc
> M src/internet-stack/ipv4-raw-socket-impl.h
> M src/internet-stack/nsc-tcp-l4-protocol.cc
> M src/internet-stack/tcp-l4-protocol.cc
> M src/internet-stack/tcp-socket-impl.cc
> M src/internet-stack/udp-l4-protocol.cc
> M src/internet-stack/udp-l4-protocol.h
> M src/internet-stack/udp-socket-impl.cc
> M src/internet-stack/udp-socket-impl.h
> M src/internet-stack/wscript
> M src/node/address-utils.cc
> M src/node/address-utils.h
> M src/node/ipv4-address.cc
> M src/node/udp-socket.cc
> M src/node/udp-socket.h
> M src/node/wscript
> M src/routing/global-routing/global-route-manager-impl.cc
> M src/routing/global-routing/global-route-manager-impl.h
> M src/routing/olsr/olsr-routing-protocol.cc
> M src/routing/olsr/olsr-routing-protocol.h
Hi all,
Here is some comments on the patch:http://codereview.appspot.com/65047/show
Best regards
Faker
More information about the Ns-developers
mailing list