OpenDaylight Service Function
Chaining
• OpenDaylight Overview
• Service Function Chaining Overview
• OpenDaylight Implementation
Agenda
What is OpenDaylight
• Multi-project
• Multi-party
• Open Source
• Platform (not SDK)
Who is ODL – Corporate Version
ODL Member Companies
42(!) Projects in Lithium
gbpmdsal
lisp
yangtools
neutron
persistence
plugin2oc
topoprocessing
bgp
sxp
snmp
didm
alto
opflex sdni
openflow
l2switch
dlux
vpn
tsdr
lacp
nic
pcmm
ttp
ovsdb vtn
usc
reservation
iotdm
autorelease
tutorials
defense4all
documentation
integration
sfc
builder
capwap
snmp4sdn
netconf
pcep
restconf
Kernel Protocol Plugins Applications Support
Core Tenets
• ODL is a platform (not an SDK)
• Develop, load and run applications
• Innovative, vibrant community
• Everyone is welcome
• “Sideways” extension
• Model driven
• YANG modeling language
• Auto generated APIs
• Common north-bound API, but many south-bound protocols
• REST/RESTCONF NB
• OF, NC/YANG, SNMP, etc. SB
OpenDaylight: Open Source SDN Controller
Controller
Service Adaptation Layer
Inventory
Manager
Base Network Functions
Topology
ExporterStatistics
Manager
Forwarding
Rules Manager
Topology
ExporterTopology
Exporter
Inventory
ManagerInventory
Manager
OpenFlow
1.0/1.3 BGP-LS PCEP Netconf
Client OVSDB
REST APIs
...
Service Functions
SFC
...Configuration
Subsystem
NETCONF
LISP
Network Devices
Applications
Network Applications
Orchestration & Services
Controller Platform
Southbound Interfaces
& Protocol Plugins
Yangtools – What is Yang?
• Yang is a modeling language
• Text based
• Simple Compact
• Models semantics and data
organization
• Models can be ‘augmented’
• Can model:
• Config/Operational data as a tree
• RPCs
• Notifications
• Standard based (RFC 6020)
Yangtools – What does Yangtools do?
• Generates Java code from Yang
• Provides ‘codecs’ to convert
• Generated Java classes to DOM
• DOM to various formats
• XML
• JSON
• Etc
• ‘Codecs’ make possible
automatic:
• RESTCONF
• Netconf
• Other bindings (AMQP expected
this summer)
Java
code
xml
json
exi
Evolving Service Deployment
• Service functions are used in almost all networks
• Deployment techniques haven’t changed in over a decade!
• Require network configuration changes: VLANs, PBR
• Static: no dynamic, horizontal or vertical scaling, and requires network changes
• Operationally disjoint: no “whole stack” view or orchestration
• Major impediment to application deployment
• How long does it take to deploy a new application or service?
• How much of that is due to network services?
• Service Function Chaining changes all that!
• Embraces the transitions taking places all over the network
• Virtualization
• Programmatic interfaces
• Overlays
• Abstraction
SFC Architectural Principles
1. Topology independent
2. Transport independent
3. Simplifies provisioning and orchestration
4. Provide clear visibility and OAM to operators
5. Unburden the service functions
6. Centralized and distributed control plane support
7. Metadata support
 Service Classifier
 Determines which traffic requires service and forms the logical start of a
service path
 Service Path
 A service path is the actual forwarding path used to realize a service chain
 Think of service chain as the “intent”; service path the actual instantiation of
the chain in the network
 Service Function Forwarder (SFF)
 Responsible for delivering traffic received from the network to one or more
connected service functions according to information carried in the network
service header as well as handling traffic coming back from the SF
 Service Function Proxy
 Component used to process network service headers on-behalf of an
attached SF
SFC Data Plane Components
 Orchestration
 Define service chains &
build service paths
 Control / Policy Planes
 Instantiate service chains
adhering to policy
 Data Plane
 Traffic steering & metadata
Services Function Chaining Primer
High-level Component Structure
Service Chaining
Orchestration
SF
(VM)
Servi
ce
(v)switch
Forwar
ding
Servi
ce
Servic
e
Classif
ier
SF
(Physical
)
Service1VLAN
Service
Function
Forwarder
(SFF)
Control
Plane
Policy Plane
SF
(VM)
Servi
ce
(v)switch
Forwar
ding
Servi
ce
SF
(Physical
)
Service1VLAN
Service
Function
Forwarder
(SFF)
Servic
e
Classif
ier
Network
Overlay +
Service Header
Service Header
 ODL SFC implementation components
 Provider
 YANG Models
 UI
 Data Plane
 Data store Listeners and Renderers
 REST
 Openflow
 LISP
https://wiki.opendaylight.org/view/Service_Function_C
haining:Main
Opendaylight SFC Main Components
Yang Models
• rendered-service-path.yang
• service-function.yang
• service-function-acl.yang
• service-function-chain.yang
• service-function-classifier.yang
• service-function-description-
monitor.yang
• service-function-description-
monitor-report.yang
• service-function-forwarder.yang
• service-function-forwarder-
ovs.yang
• service-function-path.yang
• service-function-path-
metadata.yang
• service-function-type.yang
• service-locator.yang
 ODL SFC in essence a point to multipoint
architecture
 SFC Provider manages all configuration information
provided by orchestration system or admin.
 SFC Provider writes constructed Service Function
Paths and Rendered Service Path to the datastore
 Protocol datastore listeners are notified of service
objects creation
 These listeners will process RSP information and
communicate to their controlled southbound devices
Big Picture
Opendaylight SFC Architecture
SF SFF
SFC Provider
DataStore
SFP
Openflow
Listener
REST
Listener
LISP
Listener
1
2 3
4RSP
SF = Service Function
SFF = Service Function Forwarder
SFP = Service Function Path
RSP = Rendered Service Path
Opendaylight
Open vSwitch Python NSH
Switch
GUI REST
 One stop shop for everything SFC
 Provides graphical view and configuration of
Rendered Service Paths, Service Chains, Service
Functions, etc
 Extremely easy to use
 Makes configuration and repetitive tasks easy: uses
templates, allows copy & replicating configuration,
bulk edits, amongst others
 UI has built-in diagnostics to tell if SFC components
are running, state, pull logs from ODL, amongst
others.
SFC-UI
SFC Front End
SFC JSON Data
"service-function": [
{
"name": "SF5",
"sf-data-plane-locator": [
{
"name": "vxlan",
"ip": "10.0.1.43",
"port": 40001,
"transport": "service-
locator:vxlan-gpe",
"service-function-
forwarder": "SFF4"
}
],
"nsh-aware": true,
"rest-uri":
"http://10.0.1.43:5000",
"ip-mgmt-address":
"10.0.1.43",
"type": "service-function-
type:napt44"
}
"service-function-forwarder": [
{
"name": "SFF4",
"sff-data-plane-locator": [
{
"name": "eth0",
"data-plane-locator": {
"port": 4789,
"ip": "10.0.1.44",
"transport": "service-
locator:vxlan-gpe"
}
}
],
"rest-uri":
"http://10.0.1.44:5000",
"service-function-dictionary": [
{
"name": "SF5",
"type": "service-function-
type:napt44",
"sff-sf-data-plane-locator": {
"port": 40001,
"ip": "10.0.1.43",
"transport": "service-
locator:vxlan-gpe"
}
}
],
"ip-mgmt-address": "10.0.1.43",
}
SFC JSON Data
"service-function-chain": [
{
"name": "SFC2",
"sfc-service-function": [
{
"name": "firewall-
abstract2",
"type": "service-function-
type:firewall",
"order": 0
},
{
"name": "napt44-
abstract2",
"type": "service-function-
type:napt44",
"order": 1
}
]
}
"service-function-path": [
{
"name": "Path-2-SFC2",
"service-chain-name":
"SFC2",
"symmetric": true
}
"rendered-service-path": [
{
"name": "Path-2-SFC2",
"parent-service-function-path": "Path-2-SFC2",
"path-id": 9,
"service-chain-name": "SFC2",
"starting-index": 255,
"rendered-service-path-hop": [
{
"hop-number": 0,
"service-function-name": "SF4",
"service-function-forwarder": "SFF3",
"service_index": 255
},
{
"hop-number": 1,
"service-function-name": "SF5",
"service-function-forwarder": "SFF4",
"service_index": 254
}
]
}
Operational Data
 https://github.com/opendaylight/sfc
 https://wiki.opendaylight.org/view/Service_Function_
Chaining:Main
 https://wiki.opnfv.org/service_function_chaining
References
Thank you.

More Related Content

PDF
【EPN Seminar Nov.10.2015】 Services Function Chaining Architecture, Standardiz...
PDF
Service Chaining overview (English) 2015/10/05
PPTX
LISP and NSH in Open vSwitch
PPTX
Barak Perlman, ConteXtream - SFC (Service Function Chaining) Using Openstack ...
PDF
SDN/NFV: Service Chaining
PDF
OPNFV Service Function Chaining
PDF
Virtualizing the Network to enable a Software Defined Infrastructure (SDI)
PDF
Dynamic Service Chaining
【EPN Seminar Nov.10.2015】 Services Function Chaining Architecture, Standardiz...
Service Chaining overview (English) 2015/10/05
LISP and NSH in Open vSwitch
Barak Perlman, ConteXtream - SFC (Service Function Chaining) Using Openstack ...
SDN/NFV: Service Chaining
OPNFV Service Function Chaining
Virtualizing the Network to enable a Software Defined Infrastructure (SDI)
Dynamic Service Chaining

What's hot (20)

PDF
Container Service Chaining
PDF
L4-L7 services for SDN and NVF by Youcef Laribi
PDF
Tech Talk by Louis Fourie: SFC: technology, trend and implementation
PDF
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
PPTX
DEVNET-1006 Getting Started with OpenDayLight
PPTX
SDN Project PPT
PDF
Tech Talk by John Casey (CTO) CPLANE_NETWORKS : High Performance OpenStack Ne...
PDF
Open Network OS Overview as of 2015/10/16
PDF
The Third Network: LSO, SDN and NFV
PDF
OpenStack and OVS: From Love-Hate to Match Made in Heaven
PDF
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
PDF
ONOS-Based VIM Implementation
PPTX
Introduction to Beryllium release of OpenDaylight
PPTX
MENOG-Segment Routing Introduction
PPTX
Software Load Balancer for OpenFlow Complaint SDN architecture
PDF
Segment Routing
PDF
SDN & NFV Introduction - Open Source Data Center Networking
PDF
Next-gen Network Telemetry is Within Your Packets: In-band OAM
PPTX
Openstack Neutron Insights
PDF
Service Function Chaining in Openstack Neutron
Container Service Chaining
L4-L7 services for SDN and NVF by Youcef Laribi
Tech Talk by Louis Fourie: SFC: technology, trend and implementation
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
DEVNET-1006 Getting Started with OpenDayLight
SDN Project PPT
Tech Talk by John Casey (CTO) CPLANE_NETWORKS : High Performance OpenStack Ne...
Open Network OS Overview as of 2015/10/16
The Third Network: LSO, SDN and NFV
OpenStack and OVS: From Love-Hate to Match Made in Heaven
OCP Summit 2016 - Transforming Networks to All-IT Network with OCP and Open N...
ONOS-Based VIM Implementation
Introduction to Beryllium release of OpenDaylight
MENOG-Segment Routing Introduction
Software Load Balancer for OpenFlow Complaint SDN architecture
Segment Routing
SDN & NFV Introduction - Open Source Data Center Networking
Next-gen Network Telemetry is Within Your Packets: In-band OAM
Openstack Neutron Insights
Service Function Chaining in Openstack Neutron
Ad

Viewers also liked (20)

PPTX
Opendaylight SDN Controller
PDF
Introduction to YANG data models and their use in OpenDaylight: an overview
PPTX
Provisioning VPNs on an heterogeneous network with OpenDayLight and NETCONF_bcom
PDF
Opencontrail network virtualization
PPTX
Collaborating with OpenDaylight for a Network-Enabled Cloud
PDF
NFV関連の話題 ~Service Function Chainingを中心に~
PDF
Summit 16: Service Function Chaining: Demo and Usage
PPTX
Odl virtualization-20140520
PPTX
OpenStack Neutron Service Chaining and Insertion
PPTX
OpenDaylight VTN Policy
PPTX
Schedule based network orchestration using opendaylight
PDF
Introduction to OpenDaylight
PPTX
Introduction to Opendaylight
PPTX
OpenFlow Switch Management using NETCONF and YANG
PDF
Opendaylight beryllium
ODP
SR-IOV Introduce
PPTX
Accelerating Neutron with Intel DPDK
PDF
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
PDF
Open daylight and Openstack
ODP
Nfv primer v2
Opendaylight SDN Controller
Introduction to YANG data models and their use in OpenDaylight: an overview
Provisioning VPNs on an heterogeneous network with OpenDayLight and NETCONF_bcom
Opencontrail network virtualization
Collaborating with OpenDaylight for a Network-Enabled Cloud
NFV関連の話題 ~Service Function Chainingを中心に~
Summit 16: Service Function Chaining: Demo and Usage
Odl virtualization-20140520
OpenStack Neutron Service Chaining and Insertion
OpenDaylight VTN Policy
Schedule based network orchestration using opendaylight
Introduction to OpenDaylight
Introduction to Opendaylight
OpenFlow Switch Management using NETCONF and YANG
Opendaylight beryllium
SR-IOV Introduce
Accelerating Neutron with Intel DPDK
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
Open daylight and Openstack
Nfv primer v2
Ad

Similar to DEVNET-1175 OpenDaylight Service Function Chaining (20)

PDF
Current & Future Use-Cases of OpenDaylight
PDF
Light Reading BTE_SDNtoolbox_June_2015
PDF
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
PDF
SDN Framework and APIs
PDF
Accelerating the Deployment of Practical, Programmable Transport Networks
PPTX
F14_Class1.pptx
PPTX
ONAP - Open Network Automation Platform
PDF
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
PDF
Virtual Transport Network Service SDN-Based Optical Network Virtualization
PPTX
lect4_SDNbasic_openflow.pptx
PDF
Introductionto SDN
PDF
Introduction to Software Defined Networking (SDN)
PDF
Transport SDN & NFV - What does it mean for Optical Networking?
PDF
Introduction to OpenFlow
PPTX
Openstack Overview
PDF
OpenDaylight Update (June 2018)
PPTX
Moving to microservices – a technology and organisation transformational journey
PDF
Introducing ONAP for OpenStack St Louis Meetup
PPT
Integrating Active Networking and Commercial-Grade Routing Platforms
PPTX
TechWiseTV Workshop: Segment Routing for the Datacenter
Current & Future Use-Cases of OpenDaylight
Light Reading BTE_SDNtoolbox_June_2015
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
SDN Framework and APIs
Accelerating the Deployment of Practical, Programmable Transport Networks
F14_Class1.pptx
ONAP - Open Network Automation Platform
07 (IDNOG02) SDN Research activity in Institut Teknologi Bandung by Affan Bas...
Virtual Transport Network Service SDN-Based Optical Network Virtualization
lect4_SDNbasic_openflow.pptx
Introductionto SDN
Introduction to Software Defined Networking (SDN)
Transport SDN & NFV - What does it mean for Optical Networking?
Introduction to OpenFlow
Openstack Overview
OpenDaylight Update (June 2018)
Moving to microservices – a technology and organisation transformational journey
Introducing ONAP for OpenStack St Louis Meetup
Integrating Active Networking and Commercial-Grade Routing Platforms
TechWiseTV Workshop: Segment Routing for the Datacenter

More from Cisco DevNet (20)

PPTX
How to Contribute to Ansible
PPTX
Rome 2017: Building advanced voice assistants and chat bots
PPTX
How to Build Advanced Voice Assistants and Chatbots
PPTX
Cisco Spark and Tropo and the Programmable Web
PPTX
Device Programmability with Cisco Plug-n-Play Solution
PPTX
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
PPTX
Application Visibility and Experience through Flexible Netflow
PPTX
WAN Automation Engine API Deep Dive
PPTX
Cisco's Open Device Programmability Strategy: Open Discussion
PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
PPTX
NETCONF & YANG Enablement of Network Devices
PPTX
UCS Management APIs A Technical Deep Dive
PPTX
OpenStack Enabling DevOps
PPTX
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
PPTX
Getting Started: Developing Tropo Applications
PPTX
Cisco Spark & Tropo API Workshop
PPTX
Coding 102 REST API Basics Using Spark
PPTX
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
PPTX
DevNet Express - Spark & Tropo API - Lisbon May 2016
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
How to Contribute to Ansible
Rome 2017: Building advanced voice assistants and chat bots
How to Build Advanced Voice Assistants and Chatbots
Cisco Spark and Tropo and the Programmable Web
Device Programmability with Cisco Plug-n-Play Solution
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Application Visibility and Experience through Flexible Netflow
WAN Automation Engine API Deep Dive
Cisco's Open Device Programmability Strategy: Open Discussion
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
NETCONF & YANG Enablement of Network Devices
UCS Management APIs A Technical Deep Dive
OpenStack Enabling DevOps
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Getting Started: Developing Tropo Applications
Cisco Spark & Tropo API Workshop
Coding 102 REST API Basics Using Spark
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016

Recently uploaded (20)

PDF
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PDF
Human Computer Interaction Miterm Lesson
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
CEH Module 2 Footprinting CEH V13, concepts
PPTX
Presentation - Principles of Instructional Design.pptx
PPTX
How to Convert Tickets Into Sales Opportunity in Odoo 18
PDF
Examining Bias in AI Generated News Content.pdf
PDF
Decision Optimization - From Theory to Practice
PPTX
How to use fields_get method in Odoo 18
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Identification of potential depression in social media posts
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
Human Computer Interaction Miterm Lesson
Build Real-Time ML Apps with Python, Feast & NoSQL
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
A symptom-driven medical diagnosis support model based on machine learning te...
Lung cancer patients survival prediction using outlier detection and optimize...
Introduction to MCP and A2A Protocols: Enabling Agent Communication
CEH Module 2 Footprinting CEH V13, concepts
Presentation - Principles of Instructional Design.pptx
How to Convert Tickets Into Sales Opportunity in Odoo 18
Examining Bias in AI Generated News Content.pdf
Decision Optimization - From Theory to Practice
How to use fields_get method in Odoo 18
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Identification of potential depression in social media posts
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
AI-driven Assurance Across Your End-to-end Network With ThousandEyes

DEVNET-1175 OpenDaylight Service Function Chaining

  • 2. • OpenDaylight Overview • Service Function Chaining Overview • OpenDaylight Implementation Agenda
  • 3. What is OpenDaylight • Multi-project • Multi-party • Open Source • Platform (not SDK)
  • 4. Who is ODL – Corporate Version ODL Member Companies
  • 5. 42(!) Projects in Lithium gbpmdsal lisp yangtools neutron persistence plugin2oc topoprocessing bgp sxp snmp didm alto opflex sdni openflow l2switch dlux vpn tsdr lacp nic pcmm ttp ovsdb vtn usc reservation iotdm autorelease tutorials defense4all documentation integration sfc builder capwap snmp4sdn netconf pcep restconf Kernel Protocol Plugins Applications Support
  • 6. Core Tenets • ODL is a platform (not an SDK) • Develop, load and run applications • Innovative, vibrant community • Everyone is welcome • “Sideways” extension • Model driven • YANG modeling language • Auto generated APIs • Common north-bound API, but many south-bound protocols • REST/RESTCONF NB • OF, NC/YANG, SNMP, etc. SB
  • 7. OpenDaylight: Open Source SDN Controller Controller Service Adaptation Layer Inventory Manager Base Network Functions Topology ExporterStatistics Manager Forwarding Rules Manager Topology ExporterTopology Exporter Inventory ManagerInventory Manager OpenFlow 1.0/1.3 BGP-LS PCEP Netconf Client OVSDB REST APIs ... Service Functions SFC ...Configuration Subsystem NETCONF LISP Network Devices Applications Network Applications Orchestration & Services Controller Platform Southbound Interfaces & Protocol Plugins
  • 8. Yangtools – What is Yang? • Yang is a modeling language • Text based • Simple Compact • Models semantics and data organization • Models can be ‘augmented’ • Can model: • Config/Operational data as a tree • RPCs • Notifications • Standard based (RFC 6020)
  • 9. Yangtools – What does Yangtools do? • Generates Java code from Yang • Provides ‘codecs’ to convert • Generated Java classes to DOM • DOM to various formats • XML • JSON • Etc • ‘Codecs’ make possible automatic: • RESTCONF • Netconf • Other bindings (AMQP expected this summer) Java code xml json exi
  • 10. Evolving Service Deployment • Service functions are used in almost all networks • Deployment techniques haven’t changed in over a decade! • Require network configuration changes: VLANs, PBR • Static: no dynamic, horizontal or vertical scaling, and requires network changes • Operationally disjoint: no “whole stack” view or orchestration • Major impediment to application deployment • How long does it take to deploy a new application or service? • How much of that is due to network services? • Service Function Chaining changes all that! • Embraces the transitions taking places all over the network • Virtualization • Programmatic interfaces • Overlays • Abstraction
  • 11. SFC Architectural Principles 1. Topology independent 2. Transport independent 3. Simplifies provisioning and orchestration 4. Provide clear visibility and OAM to operators 5. Unburden the service functions 6. Centralized and distributed control plane support 7. Metadata support
  • 12.  Service Classifier  Determines which traffic requires service and forms the logical start of a service path  Service Path  A service path is the actual forwarding path used to realize a service chain  Think of service chain as the “intent”; service path the actual instantiation of the chain in the network  Service Function Forwarder (SFF)  Responsible for delivering traffic received from the network to one or more connected service functions according to information carried in the network service header as well as handling traffic coming back from the SF  Service Function Proxy  Component used to process network service headers on-behalf of an attached SF SFC Data Plane Components
  • 13.  Orchestration  Define service chains & build service paths  Control / Policy Planes  Instantiate service chains adhering to policy  Data Plane  Traffic steering & metadata Services Function Chaining Primer High-level Component Structure Service Chaining Orchestration SF (VM) Servi ce (v)switch Forwar ding Servi ce Servic e Classif ier SF (Physical ) Service1VLAN Service Function Forwarder (SFF) Control Plane Policy Plane SF (VM) Servi ce (v)switch Forwar ding Servi ce SF (Physical ) Service1VLAN Service Function Forwarder (SFF) Servic e Classif ier Network Overlay + Service Header Service Header
  • 14.  ODL SFC implementation components  Provider  YANG Models  UI  Data Plane  Data store Listeners and Renderers  REST  Openflow  LISP https://wiki.opendaylight.org/view/Service_Function_C haining:Main Opendaylight SFC Main Components
  • 15. Yang Models • rendered-service-path.yang • service-function.yang • service-function-acl.yang • service-function-chain.yang • service-function-classifier.yang • service-function-description- monitor.yang • service-function-description- monitor-report.yang • service-function-forwarder.yang • service-function-forwarder- ovs.yang • service-function-path.yang • service-function-path- metadata.yang • service-function-type.yang • service-locator.yang
  • 16.  ODL SFC in essence a point to multipoint architecture  SFC Provider manages all configuration information provided by orchestration system or admin.  SFC Provider writes constructed Service Function Paths and Rendered Service Path to the datastore  Protocol datastore listeners are notified of service objects creation  These listeners will process RSP information and communicate to their controlled southbound devices Big Picture
  • 17. Opendaylight SFC Architecture SF SFF SFC Provider DataStore SFP Openflow Listener REST Listener LISP Listener 1 2 3 4RSP SF = Service Function SFF = Service Function Forwarder SFP = Service Function Path RSP = Rendered Service Path Opendaylight Open vSwitch Python NSH Switch GUI REST
  • 18.  One stop shop for everything SFC  Provides graphical view and configuration of Rendered Service Paths, Service Chains, Service Functions, etc  Extremely easy to use  Makes configuration and repetitive tasks easy: uses templates, allows copy & replicating configuration, bulk edits, amongst others  UI has built-in diagnostics to tell if SFC components are running, state, pull logs from ODL, amongst others. SFC-UI
  • 20. SFC JSON Data "service-function": [ { "name": "SF5", "sf-data-plane-locator": [ { "name": "vxlan", "ip": "10.0.1.43", "port": 40001, "transport": "service- locator:vxlan-gpe", "service-function- forwarder": "SFF4" } ], "nsh-aware": true, "rest-uri": "http://10.0.1.43:5000", "ip-mgmt-address": "10.0.1.43", "type": "service-function- type:napt44" } "service-function-forwarder": [ { "name": "SFF4", "sff-data-plane-locator": [ { "name": "eth0", "data-plane-locator": { "port": 4789, "ip": "10.0.1.44", "transport": "service- locator:vxlan-gpe" } } ], "rest-uri": "http://10.0.1.44:5000", "service-function-dictionary": [ { "name": "SF5", "type": "service-function- type:napt44", "sff-sf-data-plane-locator": { "port": 40001, "ip": "10.0.1.43", "transport": "service- locator:vxlan-gpe" } } ], "ip-mgmt-address": "10.0.1.43", }
  • 21. SFC JSON Data "service-function-chain": [ { "name": "SFC2", "sfc-service-function": [ { "name": "firewall- abstract2", "type": "service-function- type:firewall", "order": 0 }, { "name": "napt44- abstract2", "type": "service-function- type:napt44", "order": 1 } ] } "service-function-path": [ { "name": "Path-2-SFC2", "service-chain-name": "SFC2", "symmetric": true }
  • 22. "rendered-service-path": [ { "name": "Path-2-SFC2", "parent-service-function-path": "Path-2-SFC2", "path-id": 9, "service-chain-name": "SFC2", "starting-index": 255, "rendered-service-path-hop": [ { "hop-number": 0, "service-function-name": "SF4", "service-function-forwarder": "SFF3", "service_index": 255 }, { "hop-number": 1, "service-function-name": "SF5", "service-function-forwarder": "SFF4", "service_index": 254 } ] } Operational Data

Editor's Notes

  • #18: Provider is equiv of main() Datastore is idependent Datastore send notifications Listeners register to receive notifications (based on YANG tree) from datastore ALWAYS true Notifications are internal: same YANG model but encoding: json or java object Point to multi point: Provider = point Renders/listeners are multipoints Providers gets something from UI or REST, pushed to datastore The listener get notification, and act on them, independently “A path was created, an SFF was created” If SFF has OVS augmentation data in YANG (with data)  the listener looks for it Datastore: has it’s tree in the datastore OVS listener: communicates  write ovs listener writes to ovs db datastore Ovsdbplugin, gets notification, then acts OF uses API/RPC REST listener NC listener uses NC plugin, same as OVSDB BUT does not write to datastore, when it puts, SFC NC listener, sends NC command  protocol plug and send to device EACH listener acts in it’s own environment, optimizes as it should Provider is the main entry point for ALL “external” access REST, UI via REST and GBP RPC all use SAME YANG models Different encoding (http vs java objects)