model+helper: Converting L3Protocol and StackHelper to use NFD codebase
diff --git a/helper/ndn-stack-helper.hpp b/helper/ndn-stack-helper.hpp
index b6b4266..2f3ea3b 100644
--- a/helper/ndn-stack-helper.hpp
+++ b/helper/ndn-stack-helper.hpp
@@ -24,10 +24,12 @@
#include "ns3/ndnSIM/model/ndn-common.hpp"
-#include "ns3/packet.h"
#include "ns3/ptr.h"
#include "ns3/object-factory.h"
-#include "ns3/nstime.h"
+#include "ns3/node.h"
+#include "ns3/node-container.h"
+
+#include "ndn-face-container.hpp"
namespace ns3 {
@@ -35,8 +37,6 @@
namespace ndn {
-class FaceContainer;
-class Face;
class NetDeviceFace;
class L3Protocol;
@@ -82,52 +82,6 @@
const std::string& attr3 = "", const std::string& value3 = "",
const std::string& attr4 = "", const std::string& value4 = "");
- /**
- * @brief Set forwarding strategy class and its attributes
- * @param forwardingStrategyClass string containing name of the forwarding strategy class
- *
- * Valid options are "ns3::NdnFloodingStrategy" (default) and "ns3::NdnBestRouteStrategy"
- *
- * Other strategies can be implemented, inheriting ns3::NdnForwardingStrategy class
- */
- void
- SetForwardingStrategy(const std::string& forwardingStrategyClass, const std::string& attr1 = "",
- const std::string& value1 = "", const std::string& attr2 = "",
- const std::string& value2 = "", const std::string& attr3 = "",
- const std::string& value3 = "", const std::string& attr4 = "",
- const std::string& value4 = "");
-
- /**
- * @brief Set content store class and its attributes
- * @param contentStoreClass string, representing class of the content store
- */
- void
- SetContentStore(const std::string& contentStoreClass, const std::string& attr1 = "",
- const std::string& value1 = "", const std::string& attr2 = "",
- const std::string& value2 = "", const std::string& attr3 = "",
- const std::string& value3 = "", const std::string& attr4 = "",
- const std::string& value4 = "");
-
- /**
- * @brief Set PIT class and its attributes
- * @param pitClass string, representing class of PIT
- */
- void
- SetPit(const std::string& pitClass, const std::string& attr1 = "", const std::string& value1 = "",
- const std::string& attr2 = "", const std::string& value2 = "",
- const std::string& attr3 = "", const std::string& value3 = "",
- const std::string& attr4 = "", const std::string& value4 = "");
-
- /**
- * @brief Set FIB class and its attributes
- * @param pitClass string, representing class of FIB
- */
- void
- SetFib(const std::string& fibClass, const std::string& attr1 = "", const std::string& value1 = "",
- const std::string& attr2 = "", const std::string& value2 = "",
- const std::string& attr3 = "", const std::string& value3 = "",
- const std::string& attr4 = "", const std::string& value4 = "");
-
typedef Callback<shared_ptr<NetDeviceFace>, Ptr<Node>, Ptr<L3Protocol>, Ptr<NetDevice>>
NetDeviceFaceCreateCallback;
@@ -137,10 +91,6 @@
*
* It is possible to set up several callbacks for different NetDevice types.
*
- * Currently, there is only one specialized callback for PointToPointNetDevice, which creates face
- *and sets limits (if enabled)
- * based on PointToPoint link parameters
- *
* If none of the callbacks fit the TypeId of NetDevice, a default callback is used
*(DefaultNetDeviceCallback)
*/
@@ -166,28 +116,16 @@
RemoveNetDeviceFaceCreateCallback(TypeId netDeviceType, NetDeviceFaceCreateCallback callback);
/**
- * @brief Enable Interest limits (disabled by default)
- *
- * @param enable Enable or disable limits
- * @param avgRtt Average RTT
- * @param avgData Average size of contentObject packets (including all headers)
- * @param avgInterest Average size of interest packets (including all headers)
- */
- void
- EnableLimits(bool enable = true, Time avgRtt = Seconds(0.1), uint32_t avgData = 1100,
- uint32_t avgInterest = 40);
-
- /**
- * \brief Install Ndn stack on the node
- *
- * This method will assert if called on a node that already has Ndn object
- * installed on it
- *
- * \param nodeName The name of the node on which to install the stack.
- *
- * \returns list of installed faces in the form of a smart pointer
- * to NdnFaceContainer object
- */
+ * \brief Install Ndn stack on the node
+ *
+ * This method will assert if called on a node that already has Ndn object
+ * installed on it
+ *
+ * \param nodeName The name of the node on which to install the stack.
+ *
+ * \returns list of installed faces in the form of a smart pointer
+ * to NdnFaceContainer object
+ */
Ptr<FaceContainer>
Install(const std::string& nodeName) const;
@@ -229,69 +167,6 @@
Ptr<FaceContainer>
InstallAll() const;
- /**
- * \brief Add forwarding entry to FIB
- *
- * \param nodeName Node name
- * \param prefix Routing prefix
- * \param faceId Face index
- * \param metric Routing metric
- */
- static void
- AddRoute(const std::string& nodeName, const std::string& prefix, uint32_t faceId, int32_t metric);
-
- /**
- * \brief Add forwarding entry to FIB
- *
- * \param nodeName Node
- * \param prefix Routing prefix
- * \param faceId Face index
- * \param metric Routing metric
- */
- static void
- AddRoute(Ptr<Node> node, const std::string& prefix, uint32_t faceId, int32_t metric);
-
- /**
- * \brief Add forwarding entry to FIB
- *
- * \param node Node
- * \param prefix Routing prefix
- * \param face Face
- * \param metric Routing metric
- */
- static void
- AddRoute(Ptr<Node> node, const std::string& prefix, shared_ptr<Face> face, int32_t metric);
-
- /**
- * @brief Add forwarding entry to FIB (work only with point-to-point links)
- *
- * \param node Node
- * \param prefix Routing prefix
- * \param otherNode The other node, to which interests (will be used to infer face id
- * \param metric Routing metric
- */
- static void
- AddRoute(Ptr<Node> node, const std::string& prefix, Ptr<Node> otherNode, int32_t metric);
-
- /**
- * @brief Add forwarding entry to FIB (work only with point-to-point links)
- *
- * \param nodeName Node name (refer to ns3::Names)
- * \param prefix Routing prefix
- * \param otherNode The other node name, to which interests (will be used to infer face id (refer
- *to ns3::Names)
- * \param metric Routing metric
- */
- static void
- AddRoute(const std::string& nodeName, const std::string& prefix, const std::string& otherNodeName,
- int32_t metric);
-
- /**
- * \brief Set flag indicating necessity to install default routes in FIB
- */
- void
- SetDefaultRoutes(bool needSet);
-
static KeyChain&
getKeyChain();
@@ -314,15 +189,8 @@
private:
ObjectFactory m_ndnFactory;
- ObjectFactory m_strategyFactory;
ObjectFactory m_contentStoreFactory;
- ObjectFactory m_pitFactory;
- ObjectFactory m_fibFactory;
- bool m_limitsEnabled;
- Time m_avgRtt;
- uint32_t m_avgDataSize;
- uint32_t m_avgInterestSize;
bool m_needSetDefaultRoutes;
typedef std::list<std::pair<TypeId, NetDeviceFaceCreateCallback>> NetDeviceCallbackList;