  The ccns3Sim project is an open source implementation of the CCNx 1.0
protocols for the NS3 simulator. We describe the implementation and several
important features including modularity and process delay simulation. The
ccns3Sim implementation is a fresh NS3-specific implementation. Like NS3
itself, it uses C++98 standard, NS3 code style, NS3 smart pointers, NS3 xUnit,
and integrates with the NS3 documentation and manual. A user or developer does
not need to learn two systems. If one knows NS3, one should be able to get
started with the CCNx code right away. A developer can easily use their own
implementation of the layer 3 protocol, layer 4 protocol, forwarder, routing
protocol, Pending Interest Table (PIT) or Forwarding Information Base (FIB) or
Content Store (CS). A user may configure or specify a new implementation for
any of these features at runtime in the simulation script. In this paper, we
describe the software architecture and give examples of using the simulator. We
evaluate the implementation with several example experiments on ICN caching.
