Keep track of bridges in Link Layer Helper, rename node containers to resolve ambiguity
authorRichard Whitehouse <github@richardwhiuk.com>
Sat, 7 May 2011 14:46:49 +0000 (15:46 +0100)
committerRichard Whitehouse <github@richardwhiuk.com>
Sat, 7 May 2011 14:46:49 +0000 (15:46 +0100)
src/helper/link-layer-helper.cc
src/helper/link-layer-helper.h
src/simulation/simulation.cc

index cd39ffafa131232f40494eb29db548a55d457393..5f3f816e34a9cb59a0c81a84132f6e93a81b110a 100644 (file)
@@ -84,8 +84,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
 
        Network n;
 
-       n.bridges.Create(t.bridges);
-       n.hosts.Create(t.hosts);
+       n.bridgeNodes.Create(t.bridges);
+       n.hostNodes.Create(t.hosts);
 
        std::map<long, std::map<long, Ptr<NetDevice> > > portMap;
 
@@ -108,8 +108,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
                        assert(false);
                }
 
-               nc.Add(n.hosts.Get(it->first));
-               nc.Add(n.bridges.Get(it->second));
+               nc.Add(n.hostNodes.Get(it->first));
+               nc.Add(n.bridgeNodes.Get(it->second));
 
                NetDeviceContainer link = csma.Install(nc);
 
@@ -134,8 +134,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
                        assert(false);
                }
 
-               nc.Add(n.bridges.Get(it->first));
-               nc.Add(n.bridges.Get(it->second));
+               nc.Add(n.bridgeNodes.Get(it->first));
+               nc.Add(n.bridgeNodes.Get(it->second));
 
                NetDeviceContainer link = csma.Install(nc);
 
@@ -198,8 +198,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
 
                                // Create the switch
 
-                               Ptr<Node> bridgeNode = n.bridges.Get(root);
-                               mooseHelper.Install(bridgeNode, n.bridgeDevices[root], MoosePrefixAddress(root), routes);
+                               Ptr<Node> bridgeNode = n.bridgeNodes.Get(root);
+                               n.bridges[root] = mooseHelper.Install(bridgeNode, n.bridgeDevices[root], MoosePrefixAddress(root), routes);
 
                        }
 
@@ -208,8 +208,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
                        // Realtime routing
 
                        for(long i = 0; i < t.bridges; i ++){
-                               Ptr<Node> bridgeNode = n.bridges.Get(i);
-                               mooseHelper.Install(bridgeNode, n.bridgeDevices[i]);
+                               Ptr<Node> bridgeNode = n.bridgeNodes.Get(i);
+                               n.bridges[i] = mooseHelper.Install(bridgeNode, n.bridgeDevices[i]);
                        }
                }
        } else {
@@ -295,8 +295,8 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
                                }
 
 
-                               Ptr<Node> bridgeNode = n.bridges.Get(i);
-                               ethernetHelper.Install(bridgeNode, n.bridgeDevices[i], portsEnabled);
+                               Ptr<Node> bridgeNode = n.bridgeNodes.Get(i);
+                               n.bridges[i] = ethernetHelper.Install(bridgeNode, n.bridgeDevices[i], portsEnabled);
                        }
                        
                
@@ -305,15 +305,15 @@ LinkLayerHelper::Network LinkLayerHelper::Create(Topology& t){
 
                        for(long i = 0; i < t.bridges; i ++){
 
-                               Ptr<Node> bridgeNode = n.bridges.Get(i);
-                               ethernetHelper.Install(bridgeNode, n.bridgeDevices[i]);
+                               Ptr<Node> bridgeNode = n.bridgeNodes.Get(i);
+                               n.bridges[i] = ethernetHelper.Install(bridgeNode, n.bridgeDevices[i]);
                        }
                }
        }
 
        // Setup the internet
 
-       internet.Install(n.hosts);
+       internet.Install(n.hostNodes);
 
        for(long i = 0; i < t.hosts; i ++){
                n.interfaces[i] = ipv4.Assign(n.hostDevices[i]);
index d09d4da005590ed50757b8b01e0edfbe2848ec73..affbfd6df3b9b9e5f0b029482879bbe4323da3b9 100644 (file)
@@ -57,14 +57,18 @@ public:
                
                // Contains all the nodes :-)
 
-               NodeContainer bridges;
-               NodeContainer hosts;
+               NodeContainer bridgeNodes;
+               NodeContainer hostNodes;
 
-               // NetDevices
+               // CSMA NetDevices
 
                std::map<long, NetDeviceContainer> bridgeDevices;
                std::map<long, NetDeviceContainer> hostDevices;
 
+               // Bridges
+
+               std::map<long, NetDeviceContainer> bridges;
+
                // IP Interfaces
 
                std::map<long, Ipv4InterfaceContainer > interfaces;
index 2f38835ae4e1be1cf7925857100f8e4eabb8e143..ae14f4814164f3bcbff4c0e7891837ff88580cd8 100644 (file)
@@ -84,7 +84,7 @@ void setup(LinkLayerHelper::Network& n, Topology& t, std::istream& file){
 
                        UdpClientHelper helper(n.interfaces[destination].GetAddress(0), port);
                        helper.SetAttribute("MaxPackets", UintegerValue(packets));
-                       ApplicationContainer app = helper.Install(n.hosts.Get(source));
+                       ApplicationContainer app = helper.Install(n.hostNodes.Get(source));
                        app.Start (Seconds (time));
 
                }
@@ -93,7 +93,7 @@ void setup(LinkLayerHelper::Network& n, Topology& t, std::istream& file){
        NodeContainer serverNodes;
        std::map<unsigned long, bool>::iterator it;
        for(it = hosts.begin(); it != hosts.end(); it ++){
-               serverNodes.Add(n.hosts.Get(it->first));
+               serverNodes.Add(n.hostNodes.Get(it->first));
        }
 
        UdpServerHelper udpServerHelper (port);