Many corrections to face/local-face/net-device-face/fib/pit. Now
interest packets actually go down to ccnx stack. Also, now it is
possible to manually configure FIB entries.
CcnxFib now is an object aggregated to the node
diff --git a/helper/ccnx-consumer-helper.cc b/helper/ccnx-consumer-helper.cc
index b99e0b6..765f6b6 100644
--- a/helper/ccnx-consumer-helper.cc
+++ b/helper/ccnx-consumer-helper.cc
@@ -27,10 +27,13 @@
namespace ns3
{
-CcnxConsumerHelper::CcnxConsumerHelper (Ptr<CcnxNameComponents> interestName)
+CcnxConsumerHelper::CcnxConsumerHelper (const std::string &prefix)
{
m_factory.SetTypeId ("ns3::CcnxConsumer");
- m_factory.Set ("InterestName", CcnxNameComponentsValue (*interestName));
+
+ CcnxNameComponentsValue prefixValue;
+ prefixValue.DeserializeFromString (prefix, MakeCcnxNameComponentsChecker ());
+ m_factory.Set ("InterestName", prefixValue);
}
void
@@ -67,17 +70,10 @@
Ptr<Application>
CcnxConsumerHelper::InstallPriv (Ptr<Node> node)
{
- Ptr<CcnxLocalFace> localFace = CreateObject<CcnxLocalFace> ();
- localFace->SetNode(node);
-
- m_factory.Set ("Face", PointerValue (localFace));
- Ptr<CcnxConsumer> app = m_factory.Create<CcnxConsumer> ();
-
- localFace->RegisterProtocolHandler (MakeCallback (&CcnxConsumer::HandlePacket, app));
- localFace->SetUp();
-
+ Ptr<CcnxConsumer> app = m_factory.Create<CcnxConsumer> ();
node->AddApplication (app);
return app;
}
+
}
diff --git a/helper/ccnx-consumer-helper.h b/helper/ccnx-consumer-helper.h
index e512a8f..d885e2e 100644
--- a/helper/ccnx-consumer-helper.h
+++ b/helper/ccnx-consumer-helper.h
@@ -38,69 +38,70 @@
namespace ns3
{
/**
-* \brief A helper to make it easier to instantiate an ns3::CcnxConsumer Application
-* on a set of nodes.
-*/
+ * \brief A helper to make it easier to instantiate an ns3::CcnxConsumer Application
+ * on a set of nodes.
+ */
class CcnxConsumerHelper
{
public:
-/**
-* Create an CcnxConsumerHelper to make it easier to work with CcnxConsumer Apps
-*
-*/
-CcnxConsumerHelper (Ptr<CcnxNameComponents> interestName);
+ /**
+ * \brief Create an CcnxConsumerHelper to make it easier to work with CcnxConsumer Apps
+ *
+ * \param prefix Prefix which will be requested by the consumer applications
+ */
+ CcnxConsumerHelper (const std::string &prefix);
-/**
-* Helper function used to set the underlying application attributes.
-*
-* \param name the name of the application attribute to set
-* \param value the value of the application attribute to set
-*/
-void SetAttribute (std::string name, const AttributeValue &value);
+ /**
+ * \brief Helper function used to set the underlying application attributes.
+ *
+ * \param name the name of the application attribute to set
+ * \param value the value of the application attribute to set
+ */
+ void SetAttribute (std::string name, const AttributeValue &value);
-/**
-* Install an ns3::CcnxConsumer on each node of the input container
-* configured with all the attributes set with SetAttribute.
-*
-* \param c NodeContainer of the set of nodes on which an CcnxConsumer
-* will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (NodeContainer c);
+ /**
+ * Install an ns3::CcnxConsumer on each node of the input container
+ * configured with all the attributes set with SetAttribute.
+ *
+ * \param c NodeContainer of the set of nodes on which an CcnxConsumer
+ * will be installed.
+ * \returns Container of Ptr to the applications installed.
+ */
+ ApplicationContainer Install (NodeContainer c);
-/**
-* Install an ns3::CcnxConsumer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param node The node on which an CcnxConsumer will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (Ptr<Node> node);
+ /**
+ * Install an ns3::CcnxConsumer on the node configured with all the
+ * attributes set with SetAttribute.
+ *
+ * \param node The node on which an CcnxConsumer will be installed.
+ * \returns Container of Ptr to the applications installed.
+ */
+ ApplicationContainer Install (Ptr<Node> node);
-/**
-* Install an ns3::CcnxConsumer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param nodeName The node on which an CcnxConsumer will be installed.
-* \returns Container of Ptr to the applications installed.
-*/
-ApplicationContainer Install (std::string nodeName);
+ /**
+ * Install an ns3::CcnxConsumer on the node configured with all the
+ * attributes set with SetAttribute.
+ *
+ * \param nodeName The node on which an CcnxConsumer will be installed.
+ * \returns Container of Ptr to the applications installed.
+ */
+ ApplicationContainer Install (std::string nodeName);
private:
-/**
-* \internal
-* Install an ns3::CcnxConsumer on the node configured with all the
-* attributes set with SetAttribute.
-*
-* \param node The node on which an CcnxConsumer will be installed.
-* \returns Ptr to the application installed.
-*/
-Ptr<Application> InstallPriv (Ptr<Node> node);
-ObjectFactory m_factory;
+ /**
+ * \internal
+ * Install an ns3::CcnxConsumer on the node configured with all the
+ * attributes set with SetAttribute.
+ *
+ * \param node The node on which an CcnxConsumer will be installed.
+ * \returns Ptr to the application installed.
+ */
+ Ptr<Application> InstallPriv (Ptr<Node> node);
+ ObjectFactory m_factory;
+};
-};
}
#endif
diff --git a/helper/ccnx-face-container.cc b/helper/ccnx-face-container.cc
index ce595bb..8a7a9e2 100644
--- a/helper/ccnx-face-container.cc
+++ b/helper/ccnx-face-container.cc
@@ -76,16 +76,16 @@
return m_faces.size ();
}
-void
-CcnxFaceContainer::SetMetricToAll (uint16_t metric)
-{
- for (FaceContainer::iterator it=m_faces.begin ();
- it != m_faces.end ();
- it++)
- {
- (*it)->SetMetric (metric);
- }
-}
+// void
+// CcnxFaceContainer::SetMetricToAll (uint16_t metric)
+// {
+// for (FaceContainer::iterator it=m_faces.begin ();
+// it != m_faces.end ();
+// it++)
+// {
+// (*it)->SetMetric (metric);
+// }
+// }
void
CcnxFaceContainer::Add (const Ptr<CcnxFace> &face)
diff --git a/helper/ccnx-face-container.h b/helper/ccnx-face-container.h
index ecb29d9..39391f8 100644
--- a/helper/ccnx-face-container.h
+++ b/helper/ccnx-face-container.h
@@ -26,11 +26,10 @@
#include "ns3/ptr.h"
#include "ns3/simple-ref-count.h"
+#include "ns3/ccnx-face.h"
namespace ns3 {
-class CcnxFace;
-
/**
* \ingroup ccnx-helpers
* \brief A pool for CCNx faces
@@ -105,12 +104,12 @@
*/
uint32_t GetN () const;
- /**
- * \brief Set a metric for all faces in the container
- *
- * \param metric value of metric to assign to all faces in the container
- */
- void SetMetricToAll (uint16_t metric);
+ // /**
+ // * \brief Set a metric for all faces in the container
+ // *
+ // * \param metric value of metric to assign to all faces in the container
+ // */
+ // void SetMetricToAll (uint16_t metric);
/**
* Add an entry to the container
diff --git a/helper/ccnx-header-helper.cc b/helper/ccnx-header-helper.cc
index 85c88f1..1c7a806 100644
--- a/helper/ccnx-header-helper.cc
+++ b/helper/ccnx-header-helper.cc
@@ -27,6 +27,7 @@
#include "ns3/ccnx-interest-header.h"
#include "ns3/ccnx-content-object-header.h"
+#include <iomanip>
NS_LOG_COMPONENT_DEFINE ("CcnxHeaderHelper");
@@ -35,12 +36,12 @@
{
CcnxHeaderHelper::Type
-CcnxHeaderHelper::CreateCorrectCcnxHeader (Ptr<const Packet> packet)
+CcnxHeaderHelper::GetCcnxHeaderType (Ptr<const Packet> packet)
{
uint8_t type[2];
uint32_t read=packet->CopyData (type,2);
if (read!=2) throw CcnxUnknownHeaderException();
-
+
if (type[0] == INTEREST_BYTE0 && type[1] == INTEREST_BYTE1)
{
return CcnxHeaderHelper::INTEREST;
diff --git a/helper/ccnx-header-helper.h b/helper/ccnx-header-helper.h
index 996b874..f4096db 100644
--- a/helper/ccnx-header-helper.h
+++ b/helper/ccnx-header-helper.h
@@ -74,7 +74,7 @@
*/
static Type
- CreateCorrectCcnxHeader (Ptr<const Packet> packet);
+ GetCcnxHeaderType (Ptr<const Packet> packet);
};
/**
diff --git a/helper/ccnx-interest-sender-helper.cc b/helper/ccnx-interest-sender-helper.cc
deleted file mode 100644
index addd9de..0000000
--- a/helper/ccnx-interest-sender-helper.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#include "ccnx-interest-sender-helper.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/packet-socket-address.h"
-#include "ns3/string.h"
-#include "ns3/names.h"
-
-namespace ns3
-{
-
-CcnxInterestSenderHelper::CcnxInterestSenderHelper (Ptr<CcnxNameComponents> interestName)
-{
- m_factory.SetTypeId ("ns3::CcnxConsumer");
- m_factory.Set ("InterestName", CcnxNameComponentsValue (*interestName));
-}
-
-void
-CcnxInterestSenderHelper::SetAttribute (std::string name, const AttributeValue &value)
-{
- m_factory.Set (name, value);
-}
-
-ApplicationContainer
-CcnxInterestSenderHelper::Install (Ptr<Node> node)
-{
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxInterestSenderHelper::Install (std::string nodeName)
-{
- Ptr<Node> node = Names::Find<Node> (nodeName);
- return ApplicationContainer (InstallPriv (node));
-}
-
-ApplicationContainer
-CcnxInterestSenderHelper::Install (NodeContainer c)
-{
- ApplicationContainer apps;
- for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
- {
- apps.Add (InstallPriv (*i));
- }
-
- return apps;
-}
-
-Ptr<Application>
-CcnxInterestSenderHelper::InstallPriv (Ptr<Node> node)
-{
- Ptr<CcnxLocalFace> localFace = Create<CcnxLocalFace> ();
- localFace->SetNode(node);
- localFace->SetUp();
- m_factory.Set ("Face", PointerValue (localFace));
-
- Ptr<Application> app = m_factory.Create<Application> ();
- node->AddApplication (app);
-
- return app;
-}
-}
\ No newline at end of file
diff --git a/helper/ccnx-interest-sender-helper.h b/helper/ccnx-interest-sender-helper.h
deleted file mode 100644
index b58b41f..0000000
--- a/helper/ccnx-interest-sender-helper.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#ifndef CCNX_INTEREST_SENDER_HELPER_H
-#define CCNX_INTEREST_SENDER_HELPER_H
-
-#include <stdint.h>
-#include <string>
-#include "ns3/object-factory.h"
-#include "ns3/address.h"
-#include "ns3/attribute.h"
-#include "ns3/net-device.h"
-#include "ns3/node-container.h"
-#include "ns3/application-container.h"
-#include "ns3/ccnx-name-components.h"
-#include "ns3/pointer.h"
-#include "ns3/ccnx-local-face.h"
-
-namespace ns3
-{
-/**
- * \brief A helper to make it easier to instantiate an ns3::CcnxInterestSenderApplication
- * on a set of nodes.
- */
-
-class CcnxInterestSenderHelper
-{
-
-public:
- /**
- * Create an CcnxInterestSenderHelper to make it easier to work with CcnxInterestSenderApps
- *
- */
- CcnxInterestSenderHelper (Ptr<CcnxNameComponents> interestName);
-
- /**
- * Helper function used to set the underlying application attributes.
- *
- * \param name the name of the application attribute to set
- * \param value the value of the application attribute to set
- */
- void SetAttribute (std::string name, const AttributeValue &value);
-
- /**
- * Install an ns3::CcnxInterestSender on each node of the input container
- * configured with all the attributes set with SetAttribute.
- *
- * \param c NodeContainer of the set of nodes on which an CcnxInterestSender
- * will be installed.
- * \returns Container of Ptr to the applications installed.
- */
- ApplicationContainer Install (NodeContainer c);
-
- /**
- * Install an ns3::CcnxInterestSender on the node configured with all the
- * attributes set with SetAttribute.
- *
- * \param node The node on which an CcnxInterestSender will be installed.
- * \returns Container of Ptr to the applications installed.
- */
- ApplicationContainer Install (Ptr<Node> node);
-
- /**
- * Install an ns3::CcnxInterestSender on the node configured with all the
- * attributes set with SetAttribute.
- *
- * \param nodeName The node on which an CcnxInterestSender will be installed.
- * \returns Container of Ptr to the applications installed.
- */
- ApplicationContainer Install (std::string nodeName);
-
-private:
- /**
- * \internal
- * Install an ns3::CcnxInterestSender on the node configured with all the
- * attributes set with SetAttribute.
- *
- * \param node The node on which an CcnxInterestSender will be installed.
- * \returns Ptr to the application installed.
- */
- Ptr<Application> InstallPriv (Ptr<Node> node);
- ObjectFactory m_factory;
-};
-}
-
-#endif
-
diff --git a/helper/ccnx-producer-helper.cc b/helper/ccnx-producer-helper.cc
index 71a7c32..433a15a 100644
--- a/helper/ccnx-producer-helper.cc
+++ b/helper/ccnx-producer-helper.cc
@@ -72,11 +72,9 @@
Ptr<Application>
CcnxProducerHelper::InstallPriv (Ptr<Node> node)
{
- Ptr<CcnxLocalFace> localFace = CreateObject<CcnxLocalFace> ();
+ Ptr<CcnxLocalFace> localFace = Create<CcnxLocalFace> ();
localFace->SetNode(node);
-
-
-
+
//CreateAndAggregateObjectFromTypeId (node, "ns3::CcnxL3Protocol");
ObjectFactory factory;
factory.SetTypeId("ns3::CcnxL3Protocol");
@@ -92,7 +90,7 @@
return 0;
}
- m_factory.Set ("Face", PointerValue (localFace));
+ // m_factory.Set ("Face", PointerValue (localFace));
m_factory.Set ("Ccnx", PointerValue (ccnx));
Ptr<CcnxProducer> app = m_factory.Create<CcnxProducer> ();
@@ -104,4 +102,4 @@
return app;
}
-}
\ No newline at end of file
+}
diff --git a/helper/ccnx-stack-helper.cc b/helper/ccnx-stack-helper.cc
index d59827e..428ddef 100644
--- a/helper/ccnx-stack-helper.cc
+++ b/helper/ccnx-stack-helper.cc
@@ -69,6 +69,7 @@
#include "ns3/ccnx-forwarding-strategy.h"
#include "ns3/ccnx-net-device-face.h"
#include "ns3/ccnx-l3-protocol.h"
+#include "ns3/ccnx-fib.h"
#include "ccnx-face-container.h"
#include "ccnx-stack-helper.h"
@@ -112,37 +113,15 @@
static FaceStreamMapCcnx g_faceStreamMapCcnx; /**< A mapping of Ccnx/face pairs to ascii streams */
CcnxStackHelper::CcnxStackHelper ()
- : m_forwarding (0)
- , m_ccnxEnabled (true)
{
- Initialize ();
-}
-
-// private method called by both constructor and Reset ()
-void
-CcnxStackHelper::Initialize ()
-{
- // CcnxStaticForwardingHelper staticForwarding;
- // CcnxGlobalForwardingHelper globalForwarding;
- // CcnxListForwardingHelper listForwarding;
- // listForwarding.Add (staticForwarding, 0);
- // listForwarding.Add (globalForwarding, -10);
- // SetForwardingHelper (listForwarding);
}
CcnxStackHelper::~CcnxStackHelper ()
{
- if (m_forwarding)
- {
- delete m_forwarding;
- m_forwarding = 0;
- }
}
CcnxStackHelper::CcnxStackHelper (const CcnxStackHelper &o)
{
- m_forwarding = o.m_forwarding->Copy ();
- m_ccnxEnabled = o.m_ccnxEnabled;
}
CcnxStackHelper &
@@ -152,30 +131,14 @@
{
return *this;
}
- m_forwarding = o.m_forwarding->Copy ();
return *this;
}
-void
-CcnxStackHelper::Reset (void)
-{
- delete m_forwarding;
- m_forwarding = 0;
- m_ccnxEnabled = true;
- Initialize ();
-}
-
void
CcnxStackHelper::SetForwardingHelper (const CcnxForwardingHelper &forwarding)
{
- delete m_forwarding;
- m_forwarding = forwarding.Copy ();
-}
-
-void
-CcnxStackHelper::SetCcnxStackInstall (bool enable)
-{
- m_ccnxEnabled = enable;
+ // delete m_forwarding;
+ // m_forwarding = forwarding.Copy ();
}
Ptr<CcnxFaceContainer>
@@ -195,14 +158,14 @@
return Install (NodeContainer::GetGlobal ());
}
-void
-CcnxStackHelper::CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId)
-{
- ObjectFactory factory;
- factory.SetTypeId (typeId);
- Ptr<Object> protocol = factory.Create <Object> ();
- node->AggregateObject (protocol);
-}
+// void
+// CcnxStackHelper::CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId)
+// {
+// ObjectFactory factory;
+// factory.SetTypeId (typeId);
+// Ptr<Object> protocol = factory.Create <Object> ();
+// node->AggregateObject (protocol);
+// }
Ptr<CcnxFaceContainer>
CcnxStackHelper::Install (Ptr<Node> node) const
@@ -210,30 +173,31 @@
// NS_ASSERT_MSG (m_forwarding, "SetForwardingHelper() should be set prior calling Install() method");
Ptr<CcnxFaceContainer> faces = Create<CcnxFaceContainer> ();
- if (m_ccnxEnabled)
+ if (node->GetObject<Ccnx> () != 0)
{
- if (node->GetObject<Ccnx> () != 0)
- {
- NS_FATAL_ERROR ("CcnxStackHelper::Install (): Installing "
- "a CcnxStack to a node with an existing Ccnx object");
- return 0;
- }
-
- CreateAndAggregateObjectFromTypeId (node, "ns3::CcnxL3Protocol");
- // Set forwarding
- Ptr<Ccnx> ccnx = node->GetObject<Ccnx> ();
- for (uint32_t index=0; index < node->GetNDevices (); index++)
- {
- Ptr<CcnxNetDeviceFace> face = Create<CcnxNetDeviceFace> (node->GetDevice (index));
- uint32_t __attribute__ ((unused)) face_id = ccnx->AddFace (face);
- NS_LOG_LOGIC ("Node " << node->GetId () << ": added CcxnNetDeviceFace as face #" << face_id);
-
- faces->Add (face);
- }
- // Ptr<CcnxForwardingStrategy> ccnxForwarding = m_forwarding->Create (node);
- // ccnx->SetForwardingStrategy (ccnxForwarding);
+ NS_FATAL_ERROR ("CcnxStackHelper::Install (): Installing "
+ "a CcnxStack to a node with an existing Ccnx object");
+ return 0;
}
+ Ptr<CcnxFib> fib = CreateObject<CcnxFib> ();
+ node->AggregateObject (fib);
+
+ Ptr<Ccnx> ccnx = CreateObject<CcnxL3Protocol> ();
+ node->AggregateObject (ccnx);
+
+ for (uint32_t index=0; index < node->GetNDevices (); index++)
+ {
+ Ptr<CcnxNetDeviceFace> face = Create<CcnxNetDeviceFace> (node->GetDevice (index));
+ face->SetNode (node);
+ uint32_t __attribute__ ((unused)) face_id = ccnx->AddFace (face);
+ NS_LOG_LOGIC ("Node " << node->GetId () << ": added CcxnNetDeviceFace as face #" << face_id);
+
+ faces->Add (face);
+ }
+ // Ptr<CcnxForwardingStrategy> ccnxForwarding = m_forwarding->Create (node);
+ // ccnx->SetForwardingStrategy (ccnxForwarding);
+
return faces;
}
@@ -244,6 +208,26 @@
return Install (node);
}
+
+void
+CcnxStackHelper::AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric)
+{
+ NS_LOG_LOGIC ("[" << nodeName << "]$ route add " << prefix << " via " << faceId << " metric " << metric);
+
+ Ptr<Node> node = Names::Find<Node> (nodeName);
+ NS_ASSERT_MSG (node != 0, "Node [" << nodeName << "] does not exist");
+
+ Ptr<Ccnx> ccnx = node->GetObject<Ccnx> ();
+ Ptr<CcnxFib> fib = node->GetObject<CcnxFib> ();
+ Ptr<CcnxFace> face = ccnx->GetFace (faceId);
+ NS_ASSERT_MSG (node != 0, "Face with ID [" << faceId << "] does not exist on node [" << nodeName << "]");
+
+ CcnxNameComponentsValue prefixValue;
+ prefixValue.DeserializeFromString (prefix, MakeCcnxNameComponentsChecker ());
+ fib->Add (prefixValue.Get (), face, metric);
+}
+
+
static void
CcnxL3ProtocolRxTxSink (Ptr<const Packet> p, Ptr<Ccnx> ccnx, uint32_t face)
{
@@ -286,12 +270,6 @@
{
NS_LOG_FUNCTION (prefix << ccnx << face);
- if (!m_ccnxEnabled)
- {
- NS_LOG_INFO ("Call to enable Ccnx pcap tracing but Ccnx not enabled");
- return;
- }
-
//
// We have to create a file and a mapping from protocol/face to file
// irrespective of how many times we want to trace a particular protocol.
@@ -412,12 +390,6 @@
uint32_t face,
bool explicitFilename)
{
- if (!m_ccnxEnabled)
- {
- NS_LOG_INFO ("Call to enable Ccnx ascii tracing but Ccnx not enabled");
- return;
- }
-
//
// Our trace sinks are going to use packet printing, so we have to
// make sure that is turned on.
diff --git a/helper/ccnx-stack-helper.h b/helper/ccnx-stack-helper.h
index 060b0a7..1e587e3 100644
--- a/helper/ccnx-stack-helper.h
+++ b/helper/ccnx-stack-helper.h
@@ -72,11 +72,6 @@
CcnxStackHelper &operator = (const CcnxStackHelper &o);
/**
- * \brief Return helper internal state to that of a newly constructed one
- */
- void Reset ();
-
- /**
* Set forwarding strategy helper
*
* \param forwarding a new forwarding helper
@@ -142,12 +137,15 @@
InstallAll () const;
/**
- * \brief Enable/disable ccnx stack install.
+ * \brief Add forwarding entry in FIB
*
- * \param enable enable state
+ * \param nodeName Node name
+ * \param prefix Routing prefix
+ * \param faceId Face index
+ * \param metric Routing metric
*/
void
- SetCcnxStackInstall (bool enable);
+ AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric);
private:
/**
@@ -179,14 +177,10 @@
uint32_t interface,
bool explicitFilename);
- void Initialize (void);
- ObjectFactory m_tcpFactory;
- const CcnxForwardingHelper *m_forwarding;
-
- /**
- * \internal
- */
- static void CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId);
+ // /**
+ // * \internal
+ // */
+ // static void CreateAndAggregateObjectFromTypeId (Ptr<Node> node, const std::string typeId);
/**
* \internal
@@ -202,11 +196,6 @@
* \internal
*/
bool AsciiHooked (Ptr<Ccnx> ccnx);
-
- /**
- * \brief Ccnx install state (enabled/disabled) ?
- */
- bool m_ccnxEnabled;
};
} // namespace ns3