Skip to content

Features

Marc Mosko edited this page Sep 13, 2016 · 4 revisions

CCNx NS3 Features

  • Implement the CCNx layer 3 protocol.
  • Implement the IRTF ICNRG standard forwarded, as described in irtf-icnrg-ccnx-semantics and irtf-icnrg-ccnx-messages, but without caching (the content store).
  • Implement a basic distance vector routing protocol that supports multiple anchors for the same prefix and equal cost multipath.
  • An example consumer/producer application.
  • A layer 4 "portal" implementation, similar to the Portal API used in the Linux code distribution. The CCNxPortal follows similar model to the NS3 Socket APIs with a portal factory aggregated to the NS3 node, so one can use the run time type identification system to instantiate portals.
  • A CCNx stack helper and routing helpers to make instantiating networks in C++ scripts easy.
  • Several simple examples to show how to use specific features.
  • One large network example.
  • Lots of unit tests and code coverage.
  • Extensive use of the NS3 memory model (ns3::Ptr smart pointer) and run time type identification (ns3::Object).

There are lots of additional features planned for subsequent releases. The initial release has a low feature count so we can get it out as soon as possible, but it still be useful and functional.

What is not implemented (yet)

  • The ValidationAlgorithm and ValidationPayload sections of the packet are not implemented. This means you cannot attach a signature or CRC to an Interest or Content Object yet. While this might seem a big limitation, in practice many network simulations are not exercising the security features. We consider this an important feature to add, and it will appear soon in an upcoming release.

  • No manifests.

  • Flow controller. There is only a datagram Portal available, not one that will automatically download all chunks of a chunked content.

  • Easy-to-use static routes. Right now, one needs to know the interface IDs and the script to configure static routes is cumbersome. We are working to make this simple.

  • Home
  • [Getting Started](Getting Started)
  • Developer
    • [Node Architecture](Node Architecture)
    • [Header doc format](Header doc format)
    • [Unit Tests](Unit Tests)
    • [Overriding Implementations](Overriding Implementations)
    • [Code Coverage](Code Coverage)
Clone this wiki locally