0% found this document useful (0 votes)
31 views12 pages

Programming Sdns

The document discusses Software-Defined Networking (SDN) APIs, focusing on their role in enabling interaction between applications and network devices, with a distinction between northbound and southbound APIs. It highlights the importance of northbound APIs for network automation, custom application development, and interoperability, while also detailing key protocols and programming languages used in SDN. Additionally, it mentions various development tools that assist in the simulation and management of SDN networks.

Uploaded by

adhars
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views12 pages

Programming Sdns

The document discusses Software-Defined Networking (SDN) APIs, focusing on their role in enabling interaction between applications and network devices, with a distinction between northbound and southbound APIs. It highlights the importance of northbound APIs for network automation, custom application development, and interoperability, while also detailing key protocols and programming languages used in SDN. Additionally, it mentions various development tools that assist in the simulation and management of SDN networks.

Uploaded by

adhars
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

PROGRAMMING SDNs

NORTHBOUND APPLICATION PROGRAMMING INTERFACE ,


CURRENT LANGUAGES AND TOOLS
INTRODUCTION TO SDN APIs

•Software-Defined Networking (SDN) APIs allow applications and network devices to


interact with SDN controllers.
•APIs provide programmability, automation, and flexibility in managing networks.
Two main categories:
•Northbound APIs: Connect SDN controllers with applications.
•Southbound APIs: Connect SDN controllers with network devices.
Importance of SDN APIs

• Network Automation: Enables dynamic configuration without


manual intervention.
• Custom Application Development: Businesses can develop
applications to optimize network behavior.
• Interoperability: APIs standardize communication between different
SDN components.
• Improved Network Management: Simplifies traffic monitoring,
security, and policy enforcement.
Key SDN API Protocols

•OpenFlow: The most widely used SDN protocol, allowing direct control over
network devices.
•RESTful APIs: Enable applications to interact with SDN controllers over HTTP.
•gRPC: A modern, high-performance API for real-time network communication.
•NETCONF & YANG: Used for device configuration and network automation.
•BGP-LS & PCEP: Used for traffic engineering and route control in SDN networks.
Introduction to Northbound APIs

• Enable communication between SDN applications and SDN controller.

•Allow applications to define network policies, traffic flows, and security rules
dynamically.

•Examples of controllers supporting Northbound APIs: ONOS, OpenDaylight, Ryu.

•Common protocols used: RESTful APIs, gRPC, Java APIs.


Importance of Northbound APIs in
SDN
 ✔ Network Automation – Enables dynamic reconfiguration of
network policies.
✔ Application Development – Developers can create custom
networking applications.
✔ Scalability & Flexibility – Networks adapt to changing traffic
patterns without manual intervention.
✔ Interoperability – Supports various applications (security, QoS,
monitoring).
Types of Northbound APIs

1. RESTful APIs
• Web-based API using HTTP methods (GET, POST, PUT, DELETE).
• Widely used for SDN applications due to its simplicity.
2. gRPC (Google Remote Procedure Call)
• Faster and more efficient than REST, uses Protocol Buffers instead
of JSON.
• Ideal for real-time network control and monitoring.
3. Java APIs
• Used in controllers like OpenDaylight, provides direct
programmatic control over the network
Use Cases of Northbound APIs

 ✅ Traffic Engineering –
Dynamically adjust network
paths to avoid congestion.
✅ Security Applications –
Implement firewalls and
Intrusion Detection Systems
(IDS).
✅ Load Balancing – Distribute
traffic across multiple servers
for better performance.
✅ QoS (Quality of Service) –
Prioritize critical applications
like VoIP and video streaming.
Introduction to SDN Programming
Languages & Tools

•SDN programming requires specialized languages and


tools for network automation, control, and management.
•Languages are categorized into:
Control Plane Programming (for writing SDN controller applications).
Data Plane Programming (for defining how switches handle packets).
•Tools help with simulation, debugging, and deployment of SDN-based networks.
Popular SDN Programming
Languages
Python
• Used in SDN controllers like Ryu, OpenDaylight (via Flask/REST APIs).
• Simple and powerful for writing network automation scripts.
2. P4 (Programming Protocol-Independent Packet Processors)
• Language for data plane programming, allows defining how packets are
processed.
• Works with programmable switches like BMv2, Tofino, Netronome.
3. Java
• Used in OpenDaylight SDN controller.
• Supports modular SDN application development.
4. C/C++
• Used in low-level switch programming and SDN controller core development.
SDN Development Tools

Mininet
• Network emulator to test SDN applications.
• Simulates an entire network topology on a single machine.
2. OpenFlow Wireshark Plugin
• Helps in analyzing OpenFlow messages between switches and
controllers.
3. P4 Behavioral Model (BMv2)
• Simulates and tests P4-programmed switches before deploying
them.
4. ONOS and OpenDaylight
• Open-source SDN controllers that support custom application
development.
Comparison of SDN Programming
Languages and Tools

You might also like