Software Defined Networking Projects using NS3

Software-defined networking (SDN) is a modern approach to networking that eliminates the complex and static nature of legacy distributed network architectures through the use of a standards-based software abstraction between the network control plane and underlying data forwarding plane, including both physical and virtual devices.

NS3 SDN Projects

SDN features:

  • Emerging reality.
  • Automating network device configuration.
  • Big switch network.

Functionalities supported by SDN:

  • Support virtualization
  • Open flow support
  • Scalability
  • Programmability
  • Network functionality
  • Security
  • Performance
  • Reliability
  • Vendor characteristics
  • Centralized monitoring and visualization

Sample code for SDN projects:
CsmaHelper csma;
csma.SetChannelAttribute (“DataRate”, DataRateValue (5000000));
csma.SetChannelAttribute (“Delay”, TimeValue (MilliSeconds (2)));

// Create the csma links, from each terminal to the switch
NetDeviceContainer terminalDevices;
NetDeviceContainer switchDevices;
for (int i = 0; i < 4; i++)
NetDeviceContainer link = csma.Install (NodeContainer (terminals.Get (i), csmaSwitch));
terminalDevices.Add (link.Get (0));
switchDevices.Add (link.Get (1));

// Create the switch netdevice, which will do the packet switching
Ptr switchNode = csmaSwitch.Get (0);
OpenFlowSwitchHelper swtch;

if (use_drop)
Ptr controller = CreateObject ();
swtch.Install (switchNode, switchDevices, controller);
Ptr controller = CreateObject ();
if (!timeout.IsZero ()) controller->SetAttribute (“ExpirationTime”, TimeValue (timeout));
swtch.Install (switchNode, switchDevices, controller);

// Add internet stack to the terminals
InternetStackHelper internet;
internet.Install (terminals);