docs: Update documentation and Doxygen documentation generation
diff --git a/apps/callback-based-app.h b/apps/callback-based-app.h
index 8cec638..1d7e74d 100644
--- a/apps/callback-based-app.h
+++ b/apps/callback-based-app.h
@@ -19,7 +19,7 @@
namespace ns3 {
/**
- * @ingroup ndn
+ * @ingroup ndn-apps
* @brief A meta application that can be used to create custom apps within Python bindings
*/
class CallbackBasedApp: public Application
diff --git a/apps/ndn-app.h b/apps/ndn-app.h
index fd29ab0..bbe5668 100644
--- a/apps/ndn-app.h
+++ b/apps/ndn-app.h
@@ -38,7 +38,11 @@
class Face;
/**
- * @ingroup ndn
+ * \ingroup ndn
+ * \defgroup ndn-apps NDN applications
+ */
+/**
+ * @ingroup ndn-apps
* @brief Base class that all NDN applications should be derived from.
*
* The class implements virtual calls onInterest, onNack, and onContentObject
diff --git a/apps/ndn-consumer-batches.h b/apps/ndn-consumer-batches.h
index 22b9b0c..23a75c9 100644
--- a/apps/ndn-consumer-batches.h
+++ b/apps/ndn-consumer-batches.h
@@ -29,7 +29,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-apps
* \brief Ndn application for sending out Interest packets in batches
*/
class ConsumerBatches: public Consumer
diff --git a/apps/ndn-consumer-cbr.h b/apps/ndn-consumer-cbr.h
index 6143268..7076e7d 100644
--- a/apps/ndn-consumer-cbr.h
+++ b/apps/ndn-consumer-cbr.h
@@ -28,8 +28,8 @@
namespace ndn {
/**
- * @ingroup ndn
- * \brief Ndn application for sending out Interest packets at a "constant" rate (Poisson process)
+ * @ingroup ndn-apps
+ * @brief Ndn application for sending out Interest packets at a "constant" rate (Poisson process)
*/
class ConsumerCbr: public Consumer
{
diff --git a/apps/ndn-consumer-window.h b/apps/ndn-consumer-window.h
index 42ee006..1064f54 100644
--- a/apps/ndn-consumer-window.h
+++ b/apps/ndn-consumer-window.h
@@ -29,7 +29,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-apps
* \brief Ndn application for sending out Interest packets (window-based)
*
* !!! ATTENTION !!! This is highly experimental and relies on experimental features of the simulator.
diff --git a/apps/ndn-consumer-zipf-mandelbrot.h b/apps/ndn-consumer-zipf-mandelbrot.h
index b9f4d17..d9333b3 100644
--- a/apps/ndn-consumer-zipf-mandelbrot.h
+++ b/apps/ndn-consumer-zipf-mandelbrot.h
@@ -38,7 +38,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-apps
* @brief NDN app requesting contents following Zipf-Mandelbrot Distbituion
*
* The class implements an app which requests contents following Zipf-Mandelbrot Distribution
diff --git a/apps/ndn-consumer.h b/apps/ndn-consumer.h
index bb9e30a..baa6ba3 100644
--- a/apps/ndn-consumer.h
+++ b/apps/ndn-consumer.h
@@ -41,7 +41,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-apps
* \brief NDN application for sending out Interest packets
*/
class Consumer: public App
diff --git a/apps/ndn-producer.h b/apps/ndn-producer.h
index 8349ea2..1cf21fe 100644
--- a/apps/ndn-producer.h
+++ b/apps/ndn-producer.h
@@ -32,6 +32,7 @@
namespace ndn {
/**
+ * @ingroup ndn-apps
* @brief A simple Interest-sink applia simple Interest-sink application
*
* A simple Interest-sink applia simple Interest-sink application,
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 8ca2128..ebe4bb0 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -570,9 +570,9 @@
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = ../model ../helper ../utils ../apps \
- ../plugins/topology ../plugins/mobility \
- introspected-doxygen.h doxygen.h
+INPUT = ../model ../ndn.cxx ../helper ../utils ../apps \
+ ../plugins/topology ../plugins/ip-faces \
+ introspected-doxygen.h doxygen.h
# introspected-doxygen.h should be manually created:
# For example:
@@ -1259,7 +1259,7 @@
# contain include files that are not input files but should be processed by
# the preprocessor.
-INCLUDE_PATH =
+INCLUDE_PATH = ../../../build
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
@@ -1278,7 +1278,10 @@
PREDEFINED = NS3_ASSERT_ENABLE \
NS3_LOG_ENABLE \
- DOXYGEN
+ DOXYGEN \
+ "NDN_NAMESPACE_BEGIN=namespace ns3 { namespace ndn {" \
+ "NDN_NAMESPACE_END="}}"
+
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
diff --git a/docs/ns3_html_theme/static/doxygen.css b/docs/ns3_html_theme/static/doxygen.css
index 8e096b1..5cac435 100644
--- a/docs/ns3_html_theme/static/doxygen.css
+++ b/docs/ns3_html_theme/static/doxygen.css
@@ -105,9 +105,9 @@
text-decoration: none;
}
-.contents a:visited {
+/*.contents a:visited {
color: #686868;
-}
+}*/
a:hover {
text-decoration: underline;
diff --git a/docs/ns3_html_theme/static/ns3_stylesheet.css b/docs/ns3_html_theme/static/ns3_stylesheet.css
index c900197..fb55460 100644
--- a/docs/ns3_html_theme/static/ns3_stylesheet.css
+++ b/docs/ns3_html_theme/static/ns3_stylesheet.css
@@ -11,6 +11,11 @@
font-weight: bold;
}
+a:visited {
+ color: #91A501;
+ font-weight: bold;
+}
+
/* Sphinx headings */
div.body h1,
div.body h2,
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 1ef79b3..ccd8351 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -32,10 +32,10 @@
^ ^
.................|......................................|......................
. v v .
- . +------------------+ +----------------------+ .
- . | "Face" | | "Face" | .
- . | "(AppFace)" | | "(NetDeviceFace)" | .
- . +------------------+ +----------------------+ .
+ . +----------------------+ +----------------------+ .
+ . | "Face" | | "Face" | .
+ . | "(AppFace, ApiFace)" | | "(NetDeviceFace)" | .
+ . +----------------------+ +----------------------+ .
. ^ ^ .
. | | .
. v v .
diff --git a/helper/ndn-app-helper.h b/helper/ndn-app-helper.h
index 94d1046..e559260 100644
--- a/helper/ndn-app-helper.h
+++ b/helper/ndn-app-helper.h
@@ -31,6 +31,7 @@
namespace ndn {
/**
+ * @ingroup ndn-helpers
* \brief A helper to make it easier to instantiate an ns3::NdnConsumer Application
* on a set of nodes.
*/
diff --git a/helper/ndn-face-container.h b/helper/ndn-face-container.h
index 692daf6..e1566e6 100644
--- a/helper/ndn-face-container.h
+++ b/helper/ndn-face-container.h
@@ -32,7 +32,7 @@
namespace ndn {
/**
- * \ingroup ndn-helpers
+ * @ingroup ndn-helpers
* \brief A pool for Ndn faces
*
* Provides tools to perform basic manipulation on faces, such as
diff --git a/helper/ndn-global-routing-helper.h b/helper/ndn-global-routing-helper.h
index f233e89..53c7b15 100644
--- a/helper/ndn-global-routing-helper.h
+++ b/helper/ndn-global-routing-helper.h
@@ -32,7 +32,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-helpers
* @brief Helper for GlobalRouter interface
*/
class GlobalRoutingHelper
diff --git a/helper/ndn-header-helper.h b/helper/ndn-header-helper.h
index 0e39c0c..1e3e086 100644
--- a/helper/ndn-header-helper.h
+++ b/helper/ndn-header-helper.h
@@ -34,7 +34,7 @@
typedef Name NameComponents;
/**
- * \ingroup ndn-helpers
+ * @ingroup ndn-helpers
*
* \brief Class implementing functionality to detect Ndn packet type and
* create the corresponding object
@@ -94,13 +94,7 @@
};
/**
- * \ingroup ndn
- * \defgroup ndn-exceptions Exceptions
- */
- /**
- * \ingroup ndn-exceptions
- * \brief Exception thrown if Ndn stack receives unrecognized
- * message type
+ * \brief Exception thrown if NDN stack receives unrecognized message type
*/
class UnknownHeaderException {};
diff --git a/helper/ndn-link-control-helper.h b/helper/ndn-link-control-helper.h
index 619fb1c..1fb3251 100644
--- a/helper/ndn-link-control-helper.h
+++ b/helper/ndn-link-control-helper.h
@@ -29,8 +29,8 @@
namespace ndn {
/**
+ * @ingroup ndn-helpers
* @brief Helper class to control the up or down statuss of an NDN link connecting two specific nodes
- * @ingroup Ndn
*/
class LinkControlHelper
{
diff --git a/model/cs/content-store-impl.h b/model/cs/content-store-impl.h
index 90d0c95..7058009 100644
--- a/model/cs/content-store-impl.h
+++ b/model/cs/content-store-impl.h
@@ -37,6 +37,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Cache entry implementation with additional references to the base container
+ */
template<class CS>
class EntryImpl : public Entry
{
@@ -65,6 +69,10 @@
+/**
+ * @ingroup ndn-cs
+ * @brief Base implementation of NDN content store
+ */
template<class Policy>
class ContentStoreImpl : public ContentStore,
protected ndnSIM::trie_with_policy< Name,
@@ -179,7 +187,6 @@
{
NS_LOG_FUNCTION (this << interest->GetName ());
- /// @todo Change to search with predicate
typename super::const_iterator node;
if (interest->GetExclude () == 0)
{
diff --git a/model/cs/content-store-nocache.h b/model/cs/content-store-nocache.h
index 79d1284..98c1850 100644
--- a/model/cs/content-store-nocache.h
+++ b/model/cs/content-store-nocache.h
@@ -29,8 +29,8 @@
namespace cs {
/**
- * \ingroup ndn
- * \brief Implementation of ContentStore that completely disables caching
+ * @ingroup ndn-cs
+ * @brief Implementation of ContentStore that completely disables caching
*/
class Nocache : public ContentStore
{
diff --git a/model/cs/content-store-with-freshness.h b/model/cs/content-store-with-freshness.h
index 22242b9..d9fa1ba 100644
--- a/model/cs/content-store-with-freshness.h
+++ b/model/cs/content-store-with-freshness.h
@@ -30,6 +30,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that honors Freshness parameter in Data packets
+ */
template<class Policy>
class ContentStoreWithFreshness :
public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::freshness_policy_traits > > >
diff --git a/model/cs/content-store-with-stats.h b/model/cs/content-store-with-stats.h
index 3bdb9ec..a3f5fdd 100644
--- a/model/cs/content-store-with-stats.h
+++ b/model/cs/content-store-with-stats.h
@@ -30,6 +30,10 @@
namespace ndn {
namespace cs {
+/**
+ * @ingroup ndn-cs
+ * @brief Special content store realization that provides ability to track stats of CS operations
+ */
template<class Policy>
class ContentStoreWithStats :
public ContentStoreImpl< ndnSIM::multi_policy_traits< boost::mpl::vector2< Policy, ndnSIM::lifetime_stats_policy_traits > > >
diff --git a/model/cs/ndn-content-store.h b/model/cs/ndn-content-store.h
index 66e7667..10a7bd3 100644
--- a/model/cs/ndn-content-store.h
+++ b/model/cs/ndn-content-store.h
@@ -39,11 +39,20 @@
class Name;
class ContentStore;
+/**
+ * @ingroup ndn
+ * @defgroup ndn-cs Content Store
+ */
+
+/**
+ * @ingroup ndn-cs
+ * @brief Namespace for ContentStore operations
+ */
namespace cs {
/**
- * \ingroup ndn
- * \brief NDN content store entry
+ * @ingroup ndn-cs
+ * @brief NDN content store entry
*/
class Entry : public SimpleRefCount<Entry>
{
@@ -88,7 +97,7 @@
/**
- * \ingroup ndn
+ * @ingroup ndn-cs
* \brief Base class for NDN content store
*
* Particular implementations should implement Lookup, Add, and Print methods
diff --git a/model/fib/ndn-fib-entry.h b/model/fib/ndn-fib-entry.h
index 0b1a6bc..2f42259 100644
--- a/model/fib/ndn-fib-entry.h
+++ b/model/fib/ndn-fib-entry.h
@@ -45,10 +45,14 @@
class Fib;
+/**
+ * @ingroup ndn-fib
+ * @brief Namespace for FIB operations
+ */
namespace fib {
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Structure holding various parameters associated with a (FibEntry, Face) tuple
*/
class FaceMetric
@@ -191,8 +195,8 @@
/**
- * \ingroup ndn
- * \brief Typedef for indexed face container of Entry
+ * @ingroup ndn-fib
+ * @brief Typedef for indexed face container of Entry
*
* Currently, there are 2 indexes:
* - by face (used to find record and update metric)
@@ -232,7 +236,7 @@
};
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Structure for FIB table entry, holding indexed list of
* available faces and their respective metrics
*/
diff --git a/model/fib/ndn-fib-impl.h b/model/fib/ndn-fib-impl.h
index 3054420..b221d48 100644
--- a/model/fib/ndn-fib-impl.h
+++ b/model/fib/ndn-fib-impl.h
@@ -31,6 +31,10 @@
namespace ndn {
namespace fib {
+/**
+ * @ingroup ndn-fib
+ * @brief FIB entry implementation with with additional references to the base container
+ */
class EntryImpl : public Entry
{
public:
@@ -60,7 +64,7 @@
};
/**
- * \ingroup ndn
+ * @ingroup ndn-fib
* \brief Class implementing FIB functionality
*/
class FibImpl : public Fib,
diff --git a/model/fib/ndn-fib.h b/model/fib/ndn-fib.h
index 490cdfd..b5e8e40 100644
--- a/model/fib/ndn-fib.h
+++ b/model/fib/ndn-fib.h
@@ -33,8 +33,13 @@
typedef Interest InterestHeader;
/**
- * \ingroup ndn
- * \brief Class implementing FIB functionality
+ * @ingroup ndn
+ * @defgroup ndn-fib FIB
+ */
+
+/**
+ * @ingroup ndn-fib
+ * @brief Class implementing FIB functionality
*/
class Fib : public Object
{
diff --git a/model/fw/best-route.h b/model/fw/best-route.h
index 6648acb..1939a84 100644
--- a/model/fw/best-route.h
+++ b/model/fw/best-route.h
@@ -31,8 +31,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Best route strategy
+ * @ingroup ndn-fw
+ * @brief Best route strategy
*/
class BestRoute :
public GreenYellowRed
diff --git a/model/fw/flooding.h b/model/fw/flooding.h
index f7ce55a..1aa50b0 100644
--- a/model/fw/flooding.h
+++ b/model/fw/flooding.h
@@ -30,10 +30,18 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Flooding strategy
+ * @ingroup ndn-fw
+ * @brief Simple flooding strategy
*
- * \todo Describe
+ * Interests will be forwarded to all available faces available for a route (FIB entry).
+ * If there are no available GREEN or YELLOW faces, interests is dropped.
+ *
+ * Usage example:
+ * @code
+ * ndnHelper.SetForwardingStrategy ("ns3::ndn::fw::Flooding");
+ * ...
+ * ndnHelper.Install (nodes);
+ * @endcode
*/
class Flooding :
public Nacks
diff --git a/model/fw/green-yellow-red.h b/model/fw/green-yellow-red.h
index 11817bf..57f17dd 100644
--- a/model/fw/green-yellow-red.h
+++ b/model/fw/green-yellow-red.h
@@ -28,7 +28,8 @@
namespace fw {
/**
- * \ingroup ndn
+ * @ingroup ndn-fw
+ * @brief Forwarding strategy extensions to track simple link status based on data plane performance
*/
class GreenYellowRed :
public Nacks
diff --git a/model/fw/nacks.h b/model/fw/nacks.h
index 7855e19..f9f8bb1 100644
--- a/model/fw/nacks.h
+++ b/model/fw/nacks.h
@@ -27,8 +27,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Implementation of experimental NACK messages (enables with EnableNACKs option)
+ * @ingroup ndn-fw
+ * @brief Implementation of experimental NACK messages (enables with EnableNACKs option)
*/
class Nacks :
public ForwardingStrategy
diff --git a/model/fw/ndn-forwarding-strategy.h b/model/fw/ndn-forwarding-strategy.h
index 49b034b..bfed748 100644
--- a/model/fw/ndn-forwarding-strategy.h
+++ b/model/fw/ndn-forwarding-strategy.h
@@ -29,6 +29,19 @@
namespace ns3 {
namespace ndn {
+/**
+ * @ingroup ndn
+ * @defgroup ndn-fw NDN forwarding strategies
+ */
+
+
+/**
+ * @ingroup ndn-fw
+ * @brief Namespace for Forwarding Strategy operations
+ */
+namespace fw {
+}
+
class Face;
class Interest;
@@ -42,8 +55,8 @@
class ContentStore;
/**
- * \ingroup ndn
- * \brief Abstract base class for Ndn forwarding strategies
+ * @ingroup ndn-fw
+ * @brief Abstract base class for Ndn forwarding strategies
*/
class ForwardingStrategy :
public Object
diff --git a/model/fw/ndn-fw-tag.h b/model/fw/ndn-fw-tag.h
index 3407a07..5d02b31 100644
--- a/model/fw/ndn-fw-tag.h
+++ b/model/fw/ndn-fw-tag.h
@@ -27,8 +27,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
+ * @ingroup ndn-fw
+ * @brief Abstract class for the forwarding strategy tag, which can be added to PIT entries
*/
class Tag
{
diff --git a/model/fw/per-fib-limits.h b/model/fw/per-fib-limits.h
index 560432a..89ce352 100644
--- a/model/fw/per-fib-limits.h
+++ b/model/fw/per-fib-limits.h
@@ -38,8 +38,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Strategy implementing per-FIB entry limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-FIB entry limits
*/
template<class Parent>
class PerFibLimits :
diff --git a/model/fw/per-out-face-limits.h b/model/fw/per-out-face-limits.h
index fcdd43f..2f8f662 100644
--- a/model/fw/per-out-face-limits.h
+++ b/model/fw/per-out-face-limits.h
@@ -38,8 +38,8 @@
namespace fw {
/**
- * \ingroup ndn
- * \brief Strategy implementing per-outgoing face limits
+ * @ingroup ndn-fw
+ * @brief Strategy implementing per-outgoing face limits
*/
template<class Parent>
class PerOutFaceLimits :
diff --git a/model/fw/smart-flooding.h b/model/fw/smart-flooding.h
index 9263172..b764de8 100644
--- a/model/fw/smart-flooding.h
+++ b/model/fw/smart-flooding.h
@@ -29,7 +29,8 @@
namespace fw {
/**
- * \ingroup ccnx
+ * @ingroup ndn-fw
+ * @brief Smart flooding forwarding strategy
*/
class SmartFlooding :
public GreenYellowRed
diff --git a/model/ndn-common.h b/model/ndn-common.h
index de21c29..8bfc4f9 100644
--- a/model/ndn-common.h
+++ b/model/ndn-common.h
@@ -19,6 +19,19 @@
#define NDN_NAMESPACE_BEGIN namespace ns3 { namespace ndn {
#define NDN_NAMESPACE_END } /*ndn*/ } /*ns3*/
+/**
+ * @brief NS-3 namespace
+ */
+namespace ns3 {
+
+/**
+ * @brief ndnSIM namespace
+ */
+namespace ndn {
+}
+
+}
+
NDN_NAMESPACE_BEGIN
typedef Time TimeInterval;
diff --git a/model/ndn-content-object.h b/model/ndn-content-object.h
index 58e88a3..859543b 100644
--- a/model/ndn-content-object.h
+++ b/model/ndn-content-object.h
@@ -33,7 +33,7 @@
namespace ndn {
/**
- * @ingroup Ndn
+ * @ingroup ndn
* @brief ContentObject header
*/
class ContentObject : public SimpleRefCount<ContentObject>
@@ -198,7 +198,6 @@
}
/**
- * @ingroup ndn-exceptions
* @brief Class for ContentObject parsing exception
*/
class ContentObjectException {};
diff --git a/model/ndn-global-router.h b/model/ndn-global-router.h
index 1ef6329..dad2180 100644
--- a/model/ndn-global-router.h
+++ b/model/ndn-global-router.h
@@ -40,6 +40,7 @@
typedef Name NameComponents;
/**
+ * @ingroup ndn
* @brief Class representing global router interface for ndnSIM
*/
class GlobalRouter : public Object
diff --git a/model/ndn-interest.h b/model/ndn-interest.h
index 748e2d9..d7ab5df 100644
--- a/model/ndn-interest.h
+++ b/model/ndn-interest.h
@@ -37,8 +37,8 @@
namespace ndn {
/**
+ * @ingroup ndn
* @brief NDN Interest (wire formats are defined in wire)
- *
**/
class Interest : public SimpleRefCount<Interest>
{
@@ -266,7 +266,6 @@
}
/**
- * @ingroup ndn-exceptions
* @brief Class for Interest parsing exception
*/
class InterestException {};
diff --git a/model/pit/ndn-pit-entry-impl.h b/model/pit/ndn-pit-entry-impl.h
index 751402f..f3e8c62 100644
--- a/model/pit/ndn-pit-entry-impl.h
+++ b/model/pit/ndn-pit-entry-impl.h
@@ -28,6 +28,10 @@
namespace pit {
+/**
+ * @ingroup ndn-pit
+ * @brief PIT entry implementation with additional pointers to the underlying container
+ */
template<class Pit>
class EntryImpl : public Entry
{
@@ -89,6 +93,7 @@
typename Pit::super::iterator item_;
};
+/// @cond include_hidden
template<class T>
struct TimestampIndex
{
@@ -98,6 +103,7 @@
return a.GetExpireTime () < b.GetExpireTime ();
}
};
+/// @endcond
} // namespace pit
} // namespace ndn
diff --git a/model/pit/ndn-pit-entry-incoming-face.h b/model/pit/ndn-pit-entry-incoming-face.h
index fb3987e..4597f58 100644
--- a/model/pit/ndn-pit-entry-incoming-face.h
+++ b/model/pit/ndn-pit-entry-incoming-face.h
@@ -31,8 +31,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief PIT state component for each incoming interest (not including duplicates)
+ * @ingroup ndn-pit
+ * @brief PIT state component for each incoming interest (not including duplicates)
*/
struct IncomingFace
{
diff --git a/model/pit/ndn-pit-entry-outgoing-face.h b/model/pit/ndn-pit-entry-outgoing-face.h
index 20dfdaf..6b498a8 100644
--- a/model/pit/ndn-pit-entry-outgoing-face.h
+++ b/model/pit/ndn-pit-entry-outgoing-face.h
@@ -31,8 +31,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief PIT state component for each outgoing interest
+ * @ingroup ndn-pit
+ * @brief PIT state component for each outgoing interest
*/
struct OutgoingFace
{
diff --git a/model/pit/ndn-pit-entry.h b/model/pit/ndn-pit-entry.h
index 3cb5371..dd90b9f 100644
--- a/model/pit/ndn-pit-entry.h
+++ b/model/pit/ndn-pit-entry.h
@@ -48,43 +48,9 @@
namespace pit {
-/// @cond include_hidden
-class i_face {};
-class i_retx {};
-/// @endcond
-
/**
- * \ingroup ndn
- * \brief Typedef for indexed face container of PitEntryOutgoingFace
- *
- * Indexes:
- * - by face (may be it will be possible to replace with just the std::map)
- */
-// struct OutgoingFaceContainer
-// {
-// /// @cond include_hidden
-// typedef boost::multi_index::multi_index_container<
-// OutgoingFace,
-// boost::multi_index::indexed_by<
-// // For fast access to elements using NdnFace
-// boost::multi_index::ordered_unique<
-// boost::multi_index::tag<i_face>,
-// boost::multi_index::member<OutgoingFace, Ptr<Face>, &OutgoingFace::m_face>
-// >
-// // ,
-// // boost::multi_index::ordered_non_unique<
-// // boost::multi_index::tag<i_retx>,
-// // boost::multi_index::member<OutgoingFace, uint32_t, &OutgoingFace::m_retxCount>
-// // >
-// >
-// > type;
-// /// @endcond
-// };
-
-
-/**
- * \ingroup ndn
- * \brief structure for PIT entry
+ * @ingroup ndn-pit
+ * @brief structure for PIT entry
*
* All set-methods are virtual, in case index rearrangement is necessary in the derived classes
*/
@@ -315,6 +281,7 @@
std::list< boost::shared_ptr<fw::Tag> > m_fwTags; ///< @brief Forwarding strategy tags
};
+/// @cond include_hidden
struct EntryIsNotEmpty
{
bool
@@ -323,6 +290,7 @@
return !entry->GetIncoming ().empty ();
}
};
+/// @endcond
std::ostream& operator<< (std::ostream& os, const Entry &entry);
diff --git a/model/pit/ndn-pit-impl.h b/model/pit/ndn-pit-impl.h
index 26e3a6b..6a8dfcd 100644
--- a/model/pit/ndn-pit-impl.h
+++ b/model/pit/ndn-pit-impl.h
@@ -43,8 +43,8 @@
namespace pit {
/**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
*/
template<class Policy>
class PitImpl : public Pit
diff --git a/model/pit/ndn-pit.h b/model/pit/ndn-pit.h
index 4c07fd2..0699479 100644
--- a/model/pit/ndn-pit.h
+++ b/model/pit/ndn-pit.h
@@ -30,6 +30,18 @@
namespace ns3 {
namespace ndn {
+/**
+ * @ingroup ndn
+ * @defgroup ndn-pit PIT
+ */
+
+/**
+ * @ingroup ndn-pit
+ * @brief Namespace for PIT operations
+ */
+namespace pit {
+}
+
class L3Protocol;
class Face;
class ContentObject;
@@ -42,8 +54,8 @@
////////////////////////////////////////////////////////////////////////
/**
- * \ingroup ndn
- * \brief Class implementing Pending Interests Table
+ * @ingroup ndn-pit
+ * @brief Class implementing Pending Interests Table
*/
class Pit : public Object
{
diff --git a/model/wire/ccnb.h b/model/wire/ccnb.h
index 893d481..9b920b9 100644
--- a/model/wire/ccnb.h
+++ b/model/wire/ccnb.h
@@ -18,6 +18,10 @@
NDN_NAMESPACE_BEGIN
namespace wire {
+
+/**
+ * @brief Namespace for CCNb wire format operations
+ */
namespace ccnb {
/**
diff --git a/model/wire/ccnb/ccnb-parser/common.h b/model/wire/ccnb/ccnb-parser/common.h
index aa3f68a..531cd87 100644
--- a/model/wire/ccnb/ccnb-parser/common.h
+++ b/model/wire/ccnb/ccnb-parser/common.h
@@ -31,14 +31,6 @@
namespace wire {
-/**
- * \ingroup ndn
- * \defgroup ndn-ccnb CCNB decoding routines
- */
-/**
- * \ingroup ndn-ccnb
- * \brief Namespace for ccnb parer
- */
namespace CcnbParser {
// forward declarations
@@ -54,8 +46,6 @@
/**
* \brief Exception thrown if there is a parsing error
- *
- * \todo inherit this class from some exception class and provide meaningful error messages
*/
class CcnbDecodingException {};
diff --git a/model/wire/ndnsim.h b/model/wire/ndnsim.h
index 186335e..417edba 100644
--- a/model/wire/ndnsim.h
+++ b/model/wire/ndnsim.h
@@ -17,7 +17,14 @@
NDN_NAMESPACE_BEGIN
+/**
+ * @brief Namespace encapsulating wire operations
+ */
namespace wire {
+
+/**
+ * @brief Namespace for ndnSIM wire format operations
+ */
namespace ndnSIM {
/**
diff --git a/ndn.cxx/blob.h b/ndn.cxx/blob.h
index 4b488b3..1b1aa2d 100644
--- a/ndn.cxx/blob.h
+++ b/ndn.cxx/blob.h
@@ -20,6 +20,7 @@
NDN_NAMESPACE_BEGIN
/**
+ * @ingroup ndn-cxx
* @brief Class representing a general-use binary blob
*/
class Blob
diff --git a/ndn.cxx/detail/error.h b/ndn.cxx/detail/error.h
index a1f1e34..db6b751 100644
--- a/ndn.cxx/detail/error.h
+++ b/ndn.cxx/detail/error.h
@@ -35,6 +35,10 @@
NDN_NAMESPACE_BEGIN
+/**
+ * @ingroup ndn-cxx
+ * @brief Namespace holding all errors from NDN.cxx API
+ */
namespace error
{
diff --git a/ndn.cxx/exclude.h b/ndn.cxx/exclude.h
index 8315f34..fcdcbb3 100644
--- a/ndn.cxx/exclude.h
+++ b/ndn.cxx/exclude.h
@@ -19,6 +19,7 @@
NDN_NAMESPACE_BEGIN
/**
+ * @ingroup ndn-cxx
* @brief Class to represent Exclude component in NDN interests
*/
class Exclude : public SimpleRefCount<Exclude>
diff --git a/ndn.cxx/name-component.h b/ndn.cxx/name-component.h
index 7f523e0..0de0442 100644
--- a/ndn.cxx/name-component.h
+++ b/ndn.cxx/name-component.h
@@ -18,6 +18,7 @@
namespace name {
/**
+ * @ingroup ndn-cxx
* @brief Class to representing binary blob of NDN name component
*
* This class is based on Blob (std::vector<char>) and just provides several helpers
diff --git a/ndn.cxx/name.h b/ndn.cxx/name.h
index 8731323..731202d 100644
--- a/ndn.cxx/name.h
+++ b/ndn.cxx/name.h
@@ -23,6 +23,7 @@
NDN_NAMESPACE_BEGIN
/**
+ * @ingroup ndn-cxx
* @brief Class for NDN Name
*/
class Name : public SimpleRefCount<Name>
diff --git a/ndn.cxx/ndn-api-face.h b/ndn.cxx/ndn-api-face.h
index 78f482a..ac735c9 100644
--- a/ndn.cxx/ndn-api-face.h
+++ b/ndn.cxx/ndn-api-face.h
@@ -37,9 +37,16 @@
class ApiFacePriv;
/**
- * \ingroup sync
- * @brief A handler for NDN; clients of this code do not need to deal
- * with NDN API directly
+ * @ingroup ndn
+ * @defgroup ndn-cxx NDN.cxx API
+ */
+
+/**
+ * @ingroup ndn-face
+ * @ingroup ndn-cxx
+ * @brief An application NDN face, providing richer API interface, compared to ndn::AppFace
+ *
+ * @see ndn::AppFace
*/
class ApiFace
: public ns3::ndn::Face
diff --git a/plugins/ip-faces/ndn-ip-faces-helper.h b/plugins/ip-faces/ndn-ip-faces-helper.h
index ccaf3cd..873fd8e 100644
--- a/plugins/ip-faces/ndn-ip-faces-helper.h
+++ b/plugins/ip-faces/ndn-ip-faces-helper.h
@@ -35,7 +35,7 @@
namespace ndn {
/**
- * @ingroup ndn
+ * @ingroup ndn-helpers
* @brief Helper for NDN IP-based face creation
*/
class IpFacesHelper
diff --git a/utils/batches.h b/utils/batches.h
index 7074640..526ae29 100644
--- a/utils/batches.h
+++ b/utils/batches.h
@@ -30,6 +30,7 @@
namespace ns3 {
/**
+ * @ingroup ndn-apps
* @brief Class representing sets of (time, number) tuples with support of reading writing to streams
*/
class Batches : public std::list<boost::tuple<Time, uint32_t> >
diff --git a/utils/mem-usage.h b/utils/mem-usage.h
index 788a45e..a18448a 100644
--- a/utils/mem-usage.h
+++ b/utils/mem-usage.h
@@ -39,6 +39,7 @@
#endif
/**
+ * @ingroup ndn-helpers
* @brief Utility class to evaluate current usage of RAM
*/
class MemUsage
diff --git a/utils/ndn-fw-hop-count-tag.h b/utils/ndn-fw-hop-count-tag.h
index 0ed62f0..f530961 100644
--- a/utils/ndn-fw-hop-count-tag.h
+++ b/utils/ndn-fw-hop-count-tag.h
@@ -27,6 +27,7 @@
namespace ndn {
/**
+ * @ingroup ndn-fw
* @brief Packet tag that is used to track hop count for Interest-Data pairs
*/
class FwHopCountTag : public Tag
diff --git a/utils/ndn-limits-rate.h b/utils/ndn-limits-rate.h
index b21184a..0823cc7 100644
--- a/utils/ndn-limits-rate.h
+++ b/utils/ndn-limits-rate.h
@@ -28,7 +28,7 @@
namespace ndn {
/**
- * \ingroup ndn
+ * \ingroup ndn-fw
* \brief Structure to manage limits for outstanding interests
*/
class LimitsRate :
diff --git a/utils/ndn-limits-window.h b/utils/ndn-limits-window.h
index 655b8ef..1c1ed49 100644
--- a/utils/ndn-limits-window.h
+++ b/utils/ndn-limits-window.h
@@ -27,7 +27,7 @@
namespace ndn {
/**
- * \ingroup ndn
+ * \ingroup ndn-fw
* \brief Structure to manage limits for outstanding interests (window-based limiting)
*/
class LimitsWindow :
diff --git a/utils/ndn-limits.h b/utils/ndn-limits.h
index d1daa10..d8f848b 100644
--- a/utils/ndn-limits.h
+++ b/utils/ndn-limits.h
@@ -29,7 +29,7 @@
namespace ndn {
/**
- * \ingroup ndn
+ * \ingroup ndn-fw
* \brief Abstract class to manage Interest limits
*/
class Limits :
diff --git a/utils/ndn-local-info-tag.h b/utils/ndn-local-info-tag.h
index 1ff6117..ba7aa92 100644
--- a/utils/ndn-local-info-tag.h
+++ b/utils/ndn-local-info-tag.h
@@ -30,6 +30,7 @@
class Face;
/**
+ * @ingroup ndn-fw
* @brief Packet tag that is used to keep information about face from which packet was received
*
* This tag may be extended later to include more information, if necessary
diff --git a/utils/ndn-rtt-estimator.h b/utils/ndn-rtt-estimator.h
index 287452e..8da703b 100644
--- a/utils/ndn-rtt-estimator.h
+++ b/utils/ndn-rtt-estimator.h
@@ -36,7 +36,7 @@
namespace ndn {
/**
- * \ingroup tcp
+ * \ingroup ndn-apps
*
* \brief Helper class to store RTT measurements
*/
diff --git a/utils/ndn-rtt-mean-deviation.h b/utils/ndn-rtt-mean-deviation.h
index 02d8fac..fc48173 100644
--- a/utils/ndn-rtt-mean-deviation.h
+++ b/utils/ndn-rtt-mean-deviation.h
@@ -35,7 +35,7 @@
namespace ndn {
/**
- * \ingroup ndn
+ * \ingroup ndn-apps
*
* \brief The modified version of "Mean--Deviation" RTT estimator, as discussed by Van Jacobson that better suits NDN communication model
*
diff --git a/utils/tracers/ipv4-app-tracer.h b/utils/tracers/ipv4-app-tracer.h
index 0322d96..d574117 100644
--- a/utils/tracers/ipv4-app-tracer.h
+++ b/utils/tracers/ipv4-app-tracer.h
@@ -29,6 +29,10 @@
class Ipv4Header;
+/**
+ * @ingroup ndn-tracers
+ * @brief Base class for IPv4/TCP based applications
+ */
class Ipv4AppTracer : public SimpleRefCount<Ipv4AppTracer>
{
public:
diff --git a/utils/tracers/ipv4-l3-tracer.h b/utils/tracers/ipv4-l3-tracer.h
index 2e08054..b63dc01 100644
--- a/utils/tracers/ipv4-l3-tracer.h
+++ b/utils/tracers/ipv4-l3-tracer.h
@@ -29,6 +29,10 @@
class Node;
+/**
+ * @ingroup ndn-tracers
+ * @brief Base class for IPv4 network-layer tracers
+ */
class Ipv4L3Tracer : public SimpleRefCount<Ipv4L3Tracer>
{
public:
diff --git a/utils/tracers/ipv4-rate-l3-tracer.h b/utils/tracers/ipv4-rate-l3-tracer.h
index d4be0a9..b039822 100644
--- a/utils/tracers/ipv4-rate-l3-tracer.h
+++ b/utils/tracers/ipv4-rate-l3-tracer.h
@@ -34,8 +34,8 @@
namespace ns3 {
/**
- * @ingroup ccnx
- * @brief CCNx network-layer rate tracer
+ * @ingroup ndn-tracers
+ * @brief IPv4 network-layer rate tracer
*/
class Ipv4RateL3Tracer : public Ipv4L3Tracer
{
diff --git a/utils/tracers/ipv4-seqs-app-tracer.h b/utils/tracers/ipv4-seqs-app-tracer.h
index 5baa9f5..5a64a5a 100644
--- a/utils/tracers/ipv4-seqs-app-tracer.h
+++ b/utils/tracers/ipv4-seqs-app-tracer.h
@@ -27,6 +27,10 @@
namespace ns3 {
+/**
+ * @ingroup ndn-tracers
+ * @brief Helper to track application-level sequence numbers (approximated from TCP ACKs)
+ */
class Ipv4SeqsAppTracer : public Ipv4AppTracer
{
public:
diff --git a/utils/tracers/l2-rate-tracer.h b/utils/tracers/l2-rate-tracer.h
index 48105ac..de6ffcb 100644
--- a/utils/tracers/l2-rate-tracer.h
+++ b/utils/tracers/l2-rate-tracer.h
@@ -33,7 +33,10 @@
namespace ns3 {
/**
- * @ingroup ndn
+ * @ingroup ndn-tracers
+ * @brief Tracer to collect link-layer rate information about links
+ *
+ * @todo Finish implementation
*/
class L2RateTracer : public L2Tracer
{
diff --git a/utils/tracers/l2-tracer.h b/utils/tracers/l2-tracer.h
index a937d66..e6378b5 100644
--- a/utils/tracers/l2-tracer.h
+++ b/utils/tracers/l2-tracer.h
@@ -29,6 +29,12 @@
class Node;
+/**
+ * @ingroup ndn-tracers
+ * @brief Link-layer tracer
+ *
+ * @todo Finish implementation
+ */
class L2Tracer : public SimpleRefCount<L2Tracer>
{
public:
diff --git a/utils/tracers/ndn-app-delay-tracer.h b/utils/tracers/ndn-app-delay-tracer.h
index 7312225..dfbe5ea 100644
--- a/utils/tracers/ndn-app-delay-tracer.h
+++ b/utils/tracers/ndn-app-delay-tracer.h
@@ -41,8 +41,8 @@
class App;
/**
- * @ingroup ndn
- * @brief network-layer tracer for aggregate packet counts
+ * @ingroup ndn-tracers
+ * @brief Tracer to obtain application-level delays
*/
class AppDelayTracer : public SimpleRefCount<AppDelayTracer>
{
diff --git a/utils/tracers/ndn-cs-tracer.h b/utils/tracers/ndn-cs-tracer.h
index 87c290e..906e85a 100644
--- a/utils/tracers/ndn-cs-tracer.h
+++ b/utils/tracers/ndn-cs-tracer.h
@@ -48,6 +48,7 @@
namespace cs {
+/// @cond include_hidden
struct Stats
{
inline void Reset ()
@@ -58,11 +59,12 @@
double m_cacheHits;
double m_cacheMisses;
};
+/// @endcond
}
/**
- * @ingroup ndn
+ * @ingroup ndn-tracers
* @brief NDN tracer for cache performance (hits and misses)
*/
class CsTracer : public SimpleRefCount<CsTracer>
diff --git a/utils/tracers/ndn-l3-aggregate-tracer.h b/utils/tracers/ndn-l3-aggregate-tracer.h
index 98e6731..fdbf23c 100644
--- a/utils/tracers/ndn-l3-aggregate-tracer.h
+++ b/utils/tracers/ndn-l3-aggregate-tracer.h
@@ -36,8 +36,8 @@
namespace ndn {
/**
- * @ingroup ndn
- * @brief CCNx network-layer tracer for aggregate packet counts
+ * @ingroup ndn-tracers
+ * @brief NDN network-layer tracer for aggregate packet counts
*/
class L3AggregateTracer : public L3Tracer
{
diff --git a/utils/tracers/ndn-l3-rate-tracer.h b/utils/tracers/ndn-l3-rate-tracer.h
index 60bb616..9df79b1 100644
--- a/utils/tracers/ndn-l3-rate-tracer.h
+++ b/utils/tracers/ndn-l3-rate-tracer.h
@@ -36,8 +36,8 @@
namespace ndn {
/**
- * @ingroup ndn
- * @brief CCNx network-layer rate tracer
+ * @ingroup ndn-tracers
+ * @brief NDN network-layer rate tracer
*/
class L3RateTracer : public L3Tracer
{
diff --git a/utils/tracers/ndn-l3-tracer.h b/utils/tracers/ndn-l3-tracer.h
index 260fe61..ee525ed 100644
--- a/utils/tracers/ndn-l3-tracer.h
+++ b/utils/tracers/ndn-l3-tracer.h
@@ -24,6 +24,11 @@
#include "ns3/ptr.h"
#include "ns3/simple-ref-count.h"
+/**
+ * @ingroup ndn-helpers
+ * @defgroup ndn-tracers Helpers to simplify metric collection
+ */
+
namespace ns3 {
class Node;
@@ -41,6 +46,7 @@
class ContentObject;
/**
+ * @ingroup ndn-tracers
* @brief Base class for network-layer (incoming/outgoing Interests and Data) tracing of NDN stack
*/
class L3Tracer : public SimpleRefCount<L3Tracer>