SlideShare a Scribd company logo
1 of 24
Download to read offline
OPENFLOW PROTOCOL 
(BASED ON ONF SPECIFICATION 1.3.1) 
Kaliyaperumal K 
(Kaliyaperumal.krishnan@gmail.com)
AGENDA 
 Introduction to SDN 
 Introduction to OFP 
 OF Switch components 
 OF Ports 
 OF Tables 
 OF Channel
SDN INTRODUCTION 
In the SDN architecture, the control and data 
planes are decoupled, network intelligence 
and state are logically centralized, and the 
underlying network infrastructure is 
abstracted from the applications. 
- ONF white paper
LIMITATION OF CURRENT NETWORKING… 
 Complexity of current static network 
 Server virtualization 
 IP converged network for video, data and audio 
 Inconsistent policies 
 Inability to scale
OPENFLOW PROTOCOL 
Types of the switches: 
 Open-flow only 
 Open-flow hybrid 
Major components: 
 Controller 
 Openflow channel 
 Group Table 
 Meter Table 
 Flow Table
PORTS 
 Open flow ports: 
 Network interfaces for passing packets between Openflow Processing 
and the rest of the Network 
 Openflow switches connected through Openflow ports 
Types: 
 Physical ports 
 Switch defined ports 
 Eg. Physical ports map one to one Ethernet interfaces 
 Logical Ports 
 switch defined ports that don’t correspond to a hardware interface of 
switch 
 Logical ports include “Tunnel-ID”. 
 Reserved Ports 
 defined by ONF 1.3.1 
 specify generic forwarding actions such as sending to the controller, 
flooding and forwarding using non-openflow methods
RESERVED PORT TYPES 
 ALL 
 represents all ports the switch can use for forwarding a specific port 
 can be used only as output interface 
 CONTROLLER 
 represents the control channel with the open flow controller 
 can be used as ingress (packet-out) and egress (packet-in) 
 TABLE 
 represents the start of the openflow pipeline 
 used for control packets generated by the switch 
 IN-PORT 
 represents packet ingress port 
 ANY 
 special values used in openflow command when no port is specified 
 can neither be used as ingress nor egress 
 LOCAL 
 used for switch local networking and its management stack 
 NORMAL 
 represents the traditional non-openflow pipeline of the switch 
 FLOOD 
 flooding using normal pipeline of the switch on all the ports except the incoming port 
and the port which is in blocked state
TABLES 
 Openflow Tables 
 Allows to have multiple flow tables and each would have n 
number of flow entries 
 Group Table Only one Group table 
 Group multiple flow entries to point to a group 
 Meter Table 
 Only one Meter table 
 Used for shaping the traffic
OPENFLOW TABLES 
 Pipeline processing 
 Start at the first FT and may be redirected to another FT, actions would 
be updated by each matching FE 
 Go only in forward direction not backward 
 If packet is not redirected to another FT then pipeline processing stops 
and the packet is processed with associated actions set. 
 Flow Table 
 Match field, Priority, Counters, Instructions and Timeouts 
 Matching 
 Packet type, packet headers, src MAC, dest IP 
 Matching with multiple entries – choose based on priority 
 Apply-actions 
 Table-miss 
 Table-miss FE added by the controller 
 Priority is 0 
 Can be dropped, fwd to next FT, fwd to controller 
 Flow removal 
 Requested by the controller 
 Timer expiry ( hard timeout timer, idle time out timer)
PIPELINE PROCESSING
PACKET FLOW THROUGH OF SWITCH
GROUP TABLE 
 Additional method for forwarding to a group of entries 
 Main components: 
 Group ID, Group Type, Counters, Action buckets ( each action bucket 
contains a set of actions to be executed) 
 Group Type: 
 All 
 Execute all buckets in a group 
 Used mainly for multicast and broadcast – fwd a pkt on all the ports 
 Select 
 Execute one bucket in a Group ( Eg. ECMP packets) 
 Implemented for load sharing and redundancy 
 Indirect 
 Execute one defined bucket in this Group 
 Supports only a single bucket ( Eg. 40K routes are pointing to same next hop) 
 Fast failover 
 Execute the first live bucket 
 Eg. There is a primary path and secondary path – pass the traffic on primary 
path and if it fails use the secondary one.
METER TABLE 
 Consists of meter entries and defining per-flow meters 
 Per-flow meters enable OF to implement QoS operations 
(rate-limiting) 
 Components of Meter table: 
 Meter ID, Meter Band, Counters 
 Meters measures the rate of packets assigned to it and 
enable controlling the rate of those packets 
 Meters are attached directly to flow entries 
 Meter band: unordered list of meter bands, where each 
meter band specifies the rate of the band and the way to 
process packet 
 Components of Meter band: 
 Band Type, Rate, Counters, Type specific arguments 
 Band Type : defined how to process a packet (drop/ dscp remark)
OPENFLOW TABLE INSTRUCTIONS 
 Instructions are executed when a packet matches entry 
 Instruction result: 
 Change the packet 
 Action set 
 Pipeline processing 
 Supported instruction Types: 
 Meter ID 
 Direct a packet to the meter id. It may be drooped because of metering. 
 Apply-Actions 
 Apply a specific action immediately here packets are modified between 2 flow 
tables 
 Clear-Actions 
 clear all the actions in the action set immediately 
 Write-Actions 
 add a new action into the existing action set. if same action exists then 
overwrite it. 
 Write-Metadata 
 write the masked meta data value 
 Goto-Table 
 Indicate the next table in the processing pipeline
ACTION SET 
 Action set is associated with each packet 
 FE modify the action set using write-action/ clear-action 
 Actions in the action-set will be executed when pipeline is 
stopped 
 Action set contains maximum of one action of each type 
 If multiple actions of the same type need to be added then use 
“Apply-Actions” 
 Need to follow the below order to execute action 
 Different Types of Action Set: 
 Copy TTL inwards – apply copy inward actions to the packet 
 Pop – apply all tag pop actions to the packet 
 Push MPLS – apply MPLS tag push action to the packet 
 Push PBB – apply PBB tag push action to the packet 
 Copy TTL outwards 
 Decrement TTL 
 Set – apply set field actions to the packet 
 QoS 
 Group – apply group actions 
 Output – forward a packet on the port specified by the output action
ACTION LIST 
 “Apply-action” , “packet-out” messages include action list 
 Execute an action immediately 
 Actions are executed sequentially in the order they have 
been specified 
 If action list contains an output action, a copy of the packet 
is forwarded in its current state to the desired port 
 Action-set shouldn’t be changed because of action-list
ACTION 
 What to do with the packet when match criteria matches 
with the packet 
 Some of the Action Type: 
 Output 
 Fwd a pkt to the specified open flow port (physical/ logical/reserved) 
 Set Queue 
 Set Queue-id of the port : determines which queue should be used for 
scheduling and forwarding packet 
 Drop 
 Packets which doesn’t have output action should be dropped 
 Group 
 Process the packet through specified group 
 Push-Tag/ Pop-Tag 
 Insert VLAN, MPLS, PBB tage 
 Set-Field 
 Rewriting a field in the packet header 
 Change TTL 
 Decrement TTL
OPENFLOW CHANNEL 
 Message: 
 Controller-to-switch message 
 Asynchronous message 
 Symmetric message 
 Controller to Switch Message: 
 Feature request/reply 
 Controller request the switch about its capability 
 Configuration request/reply 
 Query the switch configuration 
 Modify-State 
 Add/delete/modify entries in the flow table 
 Read-State 
 Collect various info from the switch such as config, statistics 
 Packet-Out 
 Controller informs switch to fwd a packet on a specific interface 
 Reply to “packet-in” 
 Barrier 
 Controller uses this to make sure message dependencies are met 
 Role-Request 
 To set the role of its openflow channel/ query that role 
 Asynchronous configuration 
 Set a filter an asynchronous message it receives from switch
ASYNCHRONOUS MESSAGE 
 Sent by switch to the controller to denote packet arrival, 
switch state change or error 
 Types: 
 Packet-in 
 Packet needs to be processed by the controller will be sent as packet-in 
 Eg. Table miss, TTL checking 
 Switch can store the packet in the buffer and send only the buffer-ID along 
with the header ( default 128 bytes – it is configurable) 
 Buffer would expire after a period of interval 
 Flow Removal 
 Once flow entry is deleted by a Switch when any one of the timer expiry, 
switch would inform the controller 
 Port Status 
 When port admin state/ protocol state is changed to down 
 Error 
 Switch would send an error message if it not able to process a message 
which was sent by a controller
SYMMETRIC MESSAGE 
 Hello 
 Exchange information between switch and controller when 
switch comes up 
 Controller learns about switch from Hello packet 
 Echo 
 Echo request/reply messages can be sent from either the 
switch or the controller, and must return an echo reply. 
 They are mainly used to verify the liveness of a controller-switch 
connection 
 Experimenter 
 Used for future/testing purpose
OPENFLOW CHANNEL CONNECTION 
 Connection setup 
 TLS/ TCP connection 
 Version should match 
 Connection interruption 
 Failure secure mode 
 Drop all the message destined to the controller 
 Flow entries would automatically expire 
 Failure standalone mode 
 Will act as a legacy switch 
 Encryption 
 Controller and switch authenticate each other
OPENFLOW CHANNEL CONNECTION 
 Multiple controller 
 For load-balancing and redundancy 
 Role: 
 EQUAL: 
 All controllers have read and write permission on the switch 
 MASTER-SLAVE: 
 only one Master and all are slave 
 Master have read and write access but all slaves can only read 
 When master goes down, election would happen and any of them cane 
be selected as a Master 
 Once master is selected, the switch has to send error message to the 
other/ old Master 
 Generation id – identifies a given mastership view
OPENFLOW CHANNEL CONNECTION 
 Auxiliary connection 
 Created by switch for better performance and parallelism 
 Openflow channel can composed of a main connection and multiple 
auxiliary connections 
 Connection from switch to the controller are identified by 
 Data path id + Auxiliary ID 
 Data path id would be same for all 
 Auxiliary id is 0 for main connection and non-zero for others 
 Auxiliary connections could be created only if main connection is 
established 
 Each Aux connection uses their different transport (TCP, TSL ports) but 
source IP and destination IP should be same 
 There is no difference between main connection and aux connections 
 If Main connection goes down, all aux connection should be brought 
down 
 Message reordering is not supported – can use Barrier message
THANK YOU

More Related Content

What's hot

Level sensitive scan design(LSSD) and Boundry scan(BS)
Level sensitive scan design(LSSD) and Boundry scan(BS)Level sensitive scan design(LSSD) and Boundry scan(BS)
Level sensitive scan design(LSSD) and Boundry scan(BS)Praveen Kumar
 
Addressing the Network – IPv4
Addressing the Network – IPv4Addressing the Network – IPv4
Addressing the Network – IPv4Sachii Dosti
 
Chiplets in Data Centers
Chiplets in Data CentersChiplets in Data Centers
Chiplets in Data CentersODSA Workgroup
 
Vlsi physical design-notes
Vlsi physical design-notesVlsi physical design-notes
Vlsi physical design-notesDr.YNM
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsiSaransh Choudhary
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Tiny os
Tiny osTiny os
Tiny osAcad
 
CCNA2 Verson6 Chapter1
CCNA2 Verson6 Chapter1CCNA2 Verson6 Chapter1
CCNA2 Verson6 Chapter1Chaing Ravuth
 
presentation on high-performance_dynamic_cmos_circuit
presentation on high-performance_dynamic_cmos_circuitpresentation on high-performance_dynamic_cmos_circuit
presentation on high-performance_dynamic_cmos_circuitJayminSojitra
 
CCNA 2 Routing and Switching v5.0 Chapter 7
CCNA 2 Routing and Switching v5.0 Chapter 7CCNA 2 Routing and Switching v5.0 Chapter 7
CCNA 2 Routing and Switching v5.0 Chapter 7Nil Menon
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
2 STM32's Interrupts.pptx
2 STM32's Interrupts.pptx2 STM32's Interrupts.pptx
2 STM32's Interrupts.pptxMdRayhanTanvir
 
Basic functions & types of RTOS ES
Basic functions & types of  RTOS ESBasic functions & types of  RTOS ES
Basic functions & types of RTOS ESJOLLUSUDARSHANREDDY
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocolMuuluu
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationDVClub
 

What's hot (20)

Level sensitive scan design(LSSD) and Boundry scan(BS)
Level sensitive scan design(LSSD) and Boundry scan(BS)Level sensitive scan design(LSSD) and Boundry scan(BS)
Level sensitive scan design(LSSD) and Boundry scan(BS)
 
Addressing the Network – IPv4
Addressing the Network – IPv4Addressing the Network – IPv4
Addressing the Network – IPv4
 
Chiplets in Data Centers
Chiplets in Data CentersChiplets in Data Centers
Chiplets in Data Centers
 
Vlsi physical design-notes
Vlsi physical design-notesVlsi physical design-notes
Vlsi physical design-notes
 
Intellectual property in vlsi
Intellectual property in vlsiIntellectual property in vlsi
Intellectual property in vlsi
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Tiny os
Tiny osTiny os
Tiny os
 
Ppt of routing protocols
Ppt of routing protocolsPpt of routing protocols
Ppt of routing protocols
 
Switching activity
Switching activitySwitching activity
Switching activity
 
CCNA2 Verson6 Chapter1
CCNA2 Verson6 Chapter1CCNA2 Verson6 Chapter1
CCNA2 Verson6 Chapter1
 
presentation on high-performance_dynamic_cmos_circuit
presentation on high-performance_dynamic_cmos_circuitpresentation on high-performance_dynamic_cmos_circuit
presentation on high-performance_dynamic_cmos_circuit
 
Routing protocols
Routing protocolsRouting protocols
Routing protocols
 
CCNA 2 Routing and Switching v5.0 Chapter 7
CCNA 2 Routing and Switching v5.0 Chapter 7CCNA 2 Routing and Switching v5.0 Chapter 7
CCNA 2 Routing and Switching v5.0 Chapter 7
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
System on Chip (SoC)
System on Chip (SoC)System on Chip (SoC)
System on Chip (SoC)
 
2 STM32's Interrupts.pptx
2 STM32's Interrupts.pptx2 STM32's Interrupts.pptx
2 STM32's Interrupts.pptx
 
Basic functions & types of RTOS ES
Basic functions & types of  RTOS ESBasic functions & types of  RTOS ES
Basic functions & types of RTOS ES
 
Spanning tree protocol
Spanning tree protocolSpanning tree protocol
Spanning tree protocol
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
ARM CORTEX M3 PPT
ARM CORTEX M3 PPTARM CORTEX M3 PPT
ARM CORTEX M3 PPT
 

Viewers also liked

SDN - OpenFlow protocol
SDN - OpenFlow protocolSDN - OpenFlow protocol
SDN - OpenFlow protocolUlf Marxen
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
 
Architecture of OpenFlow SDNs
Architecture of OpenFlow SDNsArchitecture of OpenFlow SDNs
Architecture of OpenFlow SDNsUS-Ignite
 
OpenFlow 1.5.1
OpenFlow 1.5.1OpenFlow 1.5.1
OpenFlow 1.5.1jungbh
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowrjain51
 
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)rjain51
 

Viewers also liked (6)

SDN - OpenFlow protocol
SDN - OpenFlow protocolSDN - OpenFlow protocol
SDN - OpenFlow protocol
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Architecture of OpenFlow SDNs
Architecture of OpenFlow SDNsArchitecture of OpenFlow SDNs
Architecture of OpenFlow SDNs
 
OpenFlow 1.5.1
OpenFlow 1.5.1OpenFlow 1.5.1
OpenFlow 1.5.1
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)
 

Similar to Openflow Protocol

Ch 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureCh 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureYoram Orzach
 
Looking at SDN with DDS Glasses
Looking at SDN with DDS GlassesLooking at SDN with DDS Glasses
Looking at SDN with DDS GlassesAngelo Corsaro
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentationAzhar Khuwaja
 
OpenFlow Extensions
OpenFlow ExtensionsOpenFlow Extensions
OpenFlow ExtensionsUS-Ignite
 
Etherchannel
EtherchannelEtherchannel
EtherchannelRaj sekar
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful ServicesThomas Graf
 
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP mode
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP modeHUAWEI Switch HOW-TO - Configuring link aggregation in static LACP mode
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP modeIPMAX s.r.l.
 
Ch 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocolsCh 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocolsYoram Orzach
 
LiveAction Spanning Tree Protocol (STP) Application Note
LiveAction Spanning Tree Protocol (STP) Application NoteLiveAction Spanning Tree Protocol (STP) Application Note
LiveAction Spanning Tree Protocol (STP) Application NoteActionPacked Networks
 
Chapter 14 - Sw Conf
Chapter 14 - Sw ConfChapter 14 - Sw Conf
Chapter 14 - Sw Confphanleson
 
Open Flow Protocol
Open Flow ProtocolOpen Flow Protocol
Open Flow ProtocolVishal S M B
 
Ether Channel High Speed Data Transmission
Ether Channel  High Speed Data TransmissionEther Channel  High Speed Data Transmission
Ether Channel High Speed Data TransmissionNetwax Lab
 

Similar to Openflow Protocol (20)

OpenFlow
OpenFlowOpenFlow
OpenFlow
 
Ch 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architectureCh 02 --- sdn and openflow architecture
Ch 02 --- sdn and openflow architecture
 
Looking at SDN with DDS Glasses
Looking at SDN with DDS GlassesLooking at SDN with DDS Glasses
Looking at SDN with DDS Glasses
 
Lacp settting
Lacp setttingLacp settting
Lacp settting
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentation
 
OpenFlow Extensions
OpenFlow ExtensionsOpenFlow Extensions
OpenFlow Extensions
 
VLAN
VLANVLAN
VLAN
 
3 2
3 23 2
3 2
 
Etherchannel
EtherchannelEtherchannel
Etherchannel
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP mode
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP modeHUAWEI Switch HOW-TO - Configuring link aggregation in static LACP mode
HUAWEI Switch HOW-TO - Configuring link aggregation in static LACP mode
 
Ccnp labs
Ccnp labsCcnp labs
Ccnp labs
 
Ch 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocolsCh 03 --- the OpenFlow protocols
Ch 03 --- the OpenFlow protocols
 
Exam viewer2
Exam viewer2Exam viewer2
Exam viewer2
 
LiveAction Spanning Tree Protocol (STP) Application Note
LiveAction Spanning Tree Protocol (STP) Application NoteLiveAction Spanning Tree Protocol (STP) Application Note
LiveAction Spanning Tree Protocol (STP) Application Note
 
Lecture14 1
Lecture14 1Lecture14 1
Lecture14 1
 
Chapter 14 - Sw Conf
Chapter 14 - Sw ConfChapter 14 - Sw Conf
Chapter 14 - Sw Conf
 
Open Flow Protocol
Open Flow ProtocolOpen Flow Protocol
Open Flow Protocol
 
Ether Channel High Speed Data Transmission
Ether Channel  High Speed Data TransmissionEther Channel  High Speed Data Transmission
Ether Channel High Speed Data Transmission
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 

Recently uploaded

Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Projectwajrcs
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxPrakarsh -
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9Jürgen Gutsch
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 

Recently uploaded (20)

Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptx
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Sustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire ThornewillSustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire Thornewill
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Program with GUTs
Program with GUTsProgram with GUTs
Program with GUTs
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 

Openflow Protocol

  • 1. OPENFLOW PROTOCOL (BASED ON ONF SPECIFICATION 1.3.1) Kaliyaperumal K (Kaliyaperumal.krishnan@gmail.com)
  • 2. AGENDA  Introduction to SDN  Introduction to OFP  OF Switch components  OF Ports  OF Tables  OF Channel
  • 3. SDN INTRODUCTION In the SDN architecture, the control and data planes are decoupled, network intelligence and state are logically centralized, and the underlying network infrastructure is abstracted from the applications. - ONF white paper
  • 4. LIMITATION OF CURRENT NETWORKING…  Complexity of current static network  Server virtualization  IP converged network for video, data and audio  Inconsistent policies  Inability to scale
  • 5. OPENFLOW PROTOCOL Types of the switches:  Open-flow only  Open-flow hybrid Major components:  Controller  Openflow channel  Group Table  Meter Table  Flow Table
  • 6. PORTS  Open flow ports:  Network interfaces for passing packets between Openflow Processing and the rest of the Network  Openflow switches connected through Openflow ports Types:  Physical ports  Switch defined ports  Eg. Physical ports map one to one Ethernet interfaces  Logical Ports  switch defined ports that don’t correspond to a hardware interface of switch  Logical ports include “Tunnel-ID”.  Reserved Ports  defined by ONF 1.3.1  specify generic forwarding actions such as sending to the controller, flooding and forwarding using non-openflow methods
  • 7. RESERVED PORT TYPES  ALL  represents all ports the switch can use for forwarding a specific port  can be used only as output interface  CONTROLLER  represents the control channel with the open flow controller  can be used as ingress (packet-out) and egress (packet-in)  TABLE  represents the start of the openflow pipeline  used for control packets generated by the switch  IN-PORT  represents packet ingress port  ANY  special values used in openflow command when no port is specified  can neither be used as ingress nor egress  LOCAL  used for switch local networking and its management stack  NORMAL  represents the traditional non-openflow pipeline of the switch  FLOOD  flooding using normal pipeline of the switch on all the ports except the incoming port and the port which is in blocked state
  • 8. TABLES  Openflow Tables  Allows to have multiple flow tables and each would have n number of flow entries  Group Table Only one Group table  Group multiple flow entries to point to a group  Meter Table  Only one Meter table  Used for shaping the traffic
  • 9. OPENFLOW TABLES  Pipeline processing  Start at the first FT and may be redirected to another FT, actions would be updated by each matching FE  Go only in forward direction not backward  If packet is not redirected to another FT then pipeline processing stops and the packet is processed with associated actions set.  Flow Table  Match field, Priority, Counters, Instructions and Timeouts  Matching  Packet type, packet headers, src MAC, dest IP  Matching with multiple entries – choose based on priority  Apply-actions  Table-miss  Table-miss FE added by the controller  Priority is 0  Can be dropped, fwd to next FT, fwd to controller  Flow removal  Requested by the controller  Timer expiry ( hard timeout timer, idle time out timer)
  • 11. PACKET FLOW THROUGH OF SWITCH
  • 12. GROUP TABLE  Additional method for forwarding to a group of entries  Main components:  Group ID, Group Type, Counters, Action buckets ( each action bucket contains a set of actions to be executed)  Group Type:  All  Execute all buckets in a group  Used mainly for multicast and broadcast – fwd a pkt on all the ports  Select  Execute one bucket in a Group ( Eg. ECMP packets)  Implemented for load sharing and redundancy  Indirect  Execute one defined bucket in this Group  Supports only a single bucket ( Eg. 40K routes are pointing to same next hop)  Fast failover  Execute the first live bucket  Eg. There is a primary path and secondary path – pass the traffic on primary path and if it fails use the secondary one.
  • 13. METER TABLE  Consists of meter entries and defining per-flow meters  Per-flow meters enable OF to implement QoS operations (rate-limiting)  Components of Meter table:  Meter ID, Meter Band, Counters  Meters measures the rate of packets assigned to it and enable controlling the rate of those packets  Meters are attached directly to flow entries  Meter band: unordered list of meter bands, where each meter band specifies the rate of the band and the way to process packet  Components of Meter band:  Band Type, Rate, Counters, Type specific arguments  Band Type : defined how to process a packet (drop/ dscp remark)
  • 14. OPENFLOW TABLE INSTRUCTIONS  Instructions are executed when a packet matches entry  Instruction result:  Change the packet  Action set  Pipeline processing  Supported instruction Types:  Meter ID  Direct a packet to the meter id. It may be drooped because of metering.  Apply-Actions  Apply a specific action immediately here packets are modified between 2 flow tables  Clear-Actions  clear all the actions in the action set immediately  Write-Actions  add a new action into the existing action set. if same action exists then overwrite it.  Write-Metadata  write the masked meta data value  Goto-Table  Indicate the next table in the processing pipeline
  • 15. ACTION SET  Action set is associated with each packet  FE modify the action set using write-action/ clear-action  Actions in the action-set will be executed when pipeline is stopped  Action set contains maximum of one action of each type  If multiple actions of the same type need to be added then use “Apply-Actions”  Need to follow the below order to execute action  Different Types of Action Set:  Copy TTL inwards – apply copy inward actions to the packet  Pop – apply all tag pop actions to the packet  Push MPLS – apply MPLS tag push action to the packet  Push PBB – apply PBB tag push action to the packet  Copy TTL outwards  Decrement TTL  Set – apply set field actions to the packet  QoS  Group – apply group actions  Output – forward a packet on the port specified by the output action
  • 16. ACTION LIST  “Apply-action” , “packet-out” messages include action list  Execute an action immediately  Actions are executed sequentially in the order they have been specified  If action list contains an output action, a copy of the packet is forwarded in its current state to the desired port  Action-set shouldn’t be changed because of action-list
  • 17. ACTION  What to do with the packet when match criteria matches with the packet  Some of the Action Type:  Output  Fwd a pkt to the specified open flow port (physical/ logical/reserved)  Set Queue  Set Queue-id of the port : determines which queue should be used for scheduling and forwarding packet  Drop  Packets which doesn’t have output action should be dropped  Group  Process the packet through specified group  Push-Tag/ Pop-Tag  Insert VLAN, MPLS, PBB tage  Set-Field  Rewriting a field in the packet header  Change TTL  Decrement TTL
  • 18. OPENFLOW CHANNEL  Message:  Controller-to-switch message  Asynchronous message  Symmetric message  Controller to Switch Message:  Feature request/reply  Controller request the switch about its capability  Configuration request/reply  Query the switch configuration  Modify-State  Add/delete/modify entries in the flow table  Read-State  Collect various info from the switch such as config, statistics  Packet-Out  Controller informs switch to fwd a packet on a specific interface  Reply to “packet-in”  Barrier  Controller uses this to make sure message dependencies are met  Role-Request  To set the role of its openflow channel/ query that role  Asynchronous configuration  Set a filter an asynchronous message it receives from switch
  • 19. ASYNCHRONOUS MESSAGE  Sent by switch to the controller to denote packet arrival, switch state change or error  Types:  Packet-in  Packet needs to be processed by the controller will be sent as packet-in  Eg. Table miss, TTL checking  Switch can store the packet in the buffer and send only the buffer-ID along with the header ( default 128 bytes – it is configurable)  Buffer would expire after a period of interval  Flow Removal  Once flow entry is deleted by a Switch when any one of the timer expiry, switch would inform the controller  Port Status  When port admin state/ protocol state is changed to down  Error  Switch would send an error message if it not able to process a message which was sent by a controller
  • 20. SYMMETRIC MESSAGE  Hello  Exchange information between switch and controller when switch comes up  Controller learns about switch from Hello packet  Echo  Echo request/reply messages can be sent from either the switch or the controller, and must return an echo reply.  They are mainly used to verify the liveness of a controller-switch connection  Experimenter  Used for future/testing purpose
  • 21. OPENFLOW CHANNEL CONNECTION  Connection setup  TLS/ TCP connection  Version should match  Connection interruption  Failure secure mode  Drop all the message destined to the controller  Flow entries would automatically expire  Failure standalone mode  Will act as a legacy switch  Encryption  Controller and switch authenticate each other
  • 22. OPENFLOW CHANNEL CONNECTION  Multiple controller  For load-balancing and redundancy  Role:  EQUAL:  All controllers have read and write permission on the switch  MASTER-SLAVE:  only one Master and all are slave  Master have read and write access but all slaves can only read  When master goes down, election would happen and any of them cane be selected as a Master  Once master is selected, the switch has to send error message to the other/ old Master  Generation id – identifies a given mastership view
  • 23. OPENFLOW CHANNEL CONNECTION  Auxiliary connection  Created by switch for better performance and parallelism  Openflow channel can composed of a main connection and multiple auxiliary connections  Connection from switch to the controller are identified by  Data path id + Auxiliary ID  Data path id would be same for all  Auxiliary id is 0 for main connection and non-zero for others  Auxiliary connections could be created only if main connection is established  Each Aux connection uses their different transport (TCP, TSL ports) but source IP and destination IP should be same  There is no difference between main connection and aux connections  If Main connection goes down, all aux connection should be brought down  Message reordering is not supported – can use Barrier message