A small extension of the topology plugin
diff --git a/plugins/topology/annotated-topology-reader.cc b/plugins/topology/annotated-topology-reader.cc
index d6bbad1..f3cfc53 100644
--- a/plugins/topology/annotated-topology-reader.cc
+++ b/plugins/topology/annotated-topology-reader.cc
@@ -329,7 +329,7 @@
Ptr<MobilityModel> mobility = (*node)->GetObject<MobilityModel> ();
Vector position = mobility->GetPosition ();
- os << name << "\t" << "unknown" << "\t" << -position.y << "\t" << position.x << "\n";
+ os << name << "\t" << "NA" << "\t" << -position.y << "\t" << position.x << "\n";
}
}
diff --git a/plugins/topology/rocketfuel-weights-reader.cc b/plugins/topology/rocketfuel-weights-reader.cc
index f1c4cc8..4b4fb32 100644
--- a/plugins/topology/rocketfuel-weights-reader.cc
+++ b/plugins/topology/rocketfuel-weights-reader.cc
@@ -55,8 +55,8 @@
namespace ns3 {
-RocketfuelWeightsReader::RocketfuelWeightsReader (const std::string &path/*=""*/)
- : AnnotatedTopologyReader (path)
+RocketfuelWeightsReader::RocketfuelWeightsReader (const std::string &path/*=""*/, double scale/*=1.0*/)
+ : AnnotatedTopologyReader (path, scale)
{
NS_LOG_FUNCTION (this);
@@ -144,13 +144,24 @@
switch (m_inputType)
{
+ case LINKS:
+ {
+ // links only
+ // do nothing
+ break;
+ }
case WEIGHTS:
{
+ if (attribute == "")
+ attribute = "1";
uint16_t metric = boost::lexical_cast<uint16_t> (attribute);
link->SetAttribute ("OSPF", boost::lexical_cast<string> (metric));
break;
}
case LATENCIES:
+ if (attribute == "")
+ attribute = "1";
+
link->SetAttribute ("Delay", attribute+"ms");
break;
default:
diff --git a/plugins/topology/rocketfuel-weights-reader.h b/plugins/topology/rocketfuel-weights-reader.h
index e93ca32..e2f80d4 100644
--- a/plugins/topology/rocketfuel-weights-reader.h
+++ b/plugins/topology/rocketfuel-weights-reader.h
@@ -39,7 +39,7 @@
class RocketfuelWeightsReader : public AnnotatedTopologyReader
{
public:
- RocketfuelWeightsReader (const std::string &path="");
+ RocketfuelWeightsReader (const std::string &path="", double scale=1.0);
virtual ~RocketfuelWeightsReader ();
void
@@ -63,6 +63,7 @@
enum
{
+ LINKS,
WEIGHTS,
LATENCIES,
POSITIONS