A Novel Service Modeling Framework for NFV Networking Bin Hu - - PowerPoint PPT Presentation

a novel service modeling
SMART_READER_LITE
LIVE PREVIEW

A Novel Service Modeling Framework for NFV Networking Bin Hu - - PowerPoint PPT Presentation

A Novel Service Modeling Framework for NFV Networking Bin Hu (AT&T), Georg Kunz (Ericsson) and Sukhdev Kapur (Juniper) May 11, 2017 / Boston, MA Contents New Paradigm Shift Business Goals What is Gluon (10,000 ft. View)


slide-1
SLIDE 1

A Novel Service Modeling Framework for NFV Networking

Bin Hu (AT&T), Georg Kunz (Ericsson) and Sukhdev Kapur (Juniper)

May 11, 2017 / Boston, MA

slide-2
SLIDE 2

Contents

  • New Paradigm Shift
  • Business Goals
  • What is Gluon (10,000 ft. View)
  • Current Implementation (3,000 ft. View)
  • Gluon Backend Communication
  • Creating a New Network API (1,000 ft. View)
  • Gluon Roadmap - Integration Path with Neutron
slide-3
SLIDE 3

New Paradigm Shift

  • NFV demands change in traditional networking paradigms, and requires:
  • Multiple networking back-ends
  • Quick development and deployment of new network services APIs
  • Need to make new APIs agnostic of the back-ends
  • New networking service model on-demand
slide-4
SLIDE 4

Business Goals

  • A Working Solution Integrated with OpenStack
  • Able to Use Both Neutron and New NFV Network Services Together
  • No impact on happy users of conventional OpenStack Networking
  • Our solution is :

Gluon

Model-Driven, Extensible Framework for NFV Networking Services

slide-5
SLIDE 5

What is Gluon

  • 10,000 ft View
  • Gluon – a Port Arbiter that
  • Maintains a mapping of ports
  • f different networking back-

ends

  • Forwards port-related requests

to the correct back-end

  • Proton – a set of APIs of a

particular NFV Networking Service (i.e. standard NBI)

  • Proton Server – an API server

that hosts multiple Protons

  • Shim – the adaptor of Proton

to native SDN-C API

Gluon A Set of Protons

ODL Proprietary SDN-C

register port bind port to VM

ONOS Contrail

EVPN & MPLS/GRE L3VPN & MPLS/GRE EVPN & VxLAN etcd

shim shim shim shim

slide-6
SLIDE 6

Current Gluon Implementation

  • 3,000 ft View
  • Gluon Core Plugin
  • Extended ML2 Plugin
  • Port Arbiter Function
  • Proton Server
  • API Server supporting

multiple Protons

  • Shim Layer Server
  • Adaptation and

Configuration

  • for SDN Controllers

Neutron Server Nova Proton Server SDN Controller L2 Agent

Bind port to VM Shim Server

etcd

Gluon Core Plugin Core Plugin

Neutron Port Actions Gluon Port Actions YAML Files Model Definitions Backend Updates MySQL Database Updates

Other Neutron Backends

slide-7
SLIDE 7

Creating a New Network API (Proton)

  • Philosophy of separating “Design”

from “Execution”

  • Design Time
  • Define the model of your API in YAML
  • Execution Time
  • Use ParticleGenerator.py to generate
  • REST API with validation
  • Database schema
  • Backend synchronization using etcd
  • A CLI application to exercise the API
  • Proton Server serves new Protons at

runtime

slide-8
SLIDE 8

Model-driven API Creation

  • Goals
  • 1. Provide flexibility for creating novel networking APIs
  • Impose minimal set of assumptions and requirements on APIs
  • Basic set of data types and semantics for building hierarchical object models
  • 2. Facilitate coexistence of multiple APIs and network services
  • Design paradigm for binding of multiple services to a vNIC
slide-9
SLIDE 9

API Object Model

  • Object oriented API model

BaseObject

  • attribute_1
  • attribute_2
  • attribute_3

ApiObject extends BaseObject

  • attribute_4
  • attribute_5
  • attribute_6
  • Defines set of attributes for use in
  • ther objects
  • “Abstract class”
  • Concrete API object with auto-generated
  • RESTful endpoints
  • data base tables
  • “Concrete class”
slide-10
SLIDE 10

Generated API Endpoints

  • Generated API Endpoints for API Objects
  • The content type for all of the operations is *application/json*.

POST /proton/example_api/service Create service object PUT /proton/example_api/service/<service_id> Modify service object GET /proton/example_api/service Get all service objects GET /proton/example_api/service/<service_id> Get one service object DELETE /proton/example_api/service/<service_id> Delete a service object Example: service APIObject of API example_api

slide-11
SLIDE 11

Model-driven API Creation

  • Goals
  • 1. Provide flexibility for creating novel networking APIs
  • Impose minimal set of assumptions and requirements on APIs
  • Basic set of data types and semantics for building hierarchical object models
  • 2. Facilitate coexistence of multiple APIs and network services
  • Design paradigm for binding of multiple services to a vNIC
slide-12
SLIDE 12

Port and Service Binding Model

  • Design paradigm for binding multiple network services to a vNIC

BasePort

  • port_id
  • mac_address

BaseService BaseInterface

  • port_id
  • segmentation_id

BaseServiceBinding

  • interface_id
  • service_id

1 * * 1 1 1

slide-13
SLIDE 13

L3VPN Model

  • API for BGP VPNs

VpnBinding extends BaseServiceBinding

  • interface_id
  • service_id
  • IP_address
  • subnet_prefix
  • gateway

VpnService extends BaseService

  • ipv4_targets
  • ipv6_targets
  • route_distinguishers

Interface extends BaseInterface

  • port_id

Port extends BasePort

slide-14
SLIDE 14

Models under Development

  • Point-to-Point links with guaranteed bandwidth
  • IETF SFC
  • Mapping of IETF SFC data model to Gluon
  • Current version of IETF SFC model in Gluon very simplified
  • Extension to full scale IETF SFC model required
  • Validate Gluon modelling approach against complex real world model

P2pBinding extends BaseServiceBinding

  • interface_id
  • service_id
  • bandwidth

P2pService extends BaseService

  • protocol

Interface extends BaseInterface

  • port_id

Port extends BasePort

slide-15
SLIDE 15

Future of Gluon

  • Gluon to become a service plugin in Neutron
  • Come, participate, and contribute
  • Will fully integrate with rest of neutron drivers and service

plugins (networking-xxx, including newly kicked off networking-opencontrail)

  • Huge win for Users/Operators
  • Can deploy new NFV functions along with their existing neutron

services without any forklift upgrades

  • Multiple SDN controllers, along with traditional neutron services
slide-16
SLIDE 16

Gluon Integration Path with Neutron

  • Neutron Service Plugin for Proton & Particle Generator – to be started
  • Interact with backend via etcd and respective SDN-C Drivers

API Plugins Core APIs Neutron Extension APIs

Core Plugin

Other Plugins and Extensions e.g. ML3 Plugin, Security Groups Plugin, LBaaS Extensions

Gluon APIs

Proton Server Proton API & Particle Generator

Neutron

SDN Controller

SDN-C Driver

etcd

SDN-C Driver

SDN Controller

Networking Backends YAML Files Model Definitions

slide-17
SLIDE 17

Future of Gluon – food for thoughts

  • Gluon service plugin will introduce a “generic CLI/API”
  • Base objects/resources owned by Gluon
  • Two new resources to be introduced:
  • Gluon-endpoint
  • Gluon-net-function
  • Proton API extends the base objects/resources by adding new

NFV function specific attributes to base objects (described earlier)

  • One can connect/bind:
  • Gluon-endpoints with neutron networks/subnets – e.g. gateways
  • Gluon-endpoints to Gluon-endpoints – e.g. point-to-point
  • Gluon-endpoints to gluon-net-functions – e.g. SFC use case
slide-18
SLIDE 18

Questions