35
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. VOLTHA Architecture Sergio Slobodrian Wednesday December 5, 2018 V2.0

VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary.

VOLTHA Architecture

Sergio Slobodrian

Wednesday December 5, 2018

V2.0

Page 2: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 2

Contents

Per μService Architectures

Call flows through the system

High Level Architecture

Kubernetes Integration

High Availability Model

Kafka Adapter Messaging Model

Page 3: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 3

High Level Architecture

Subhead Information

Page 4: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 4

Kubernetes

Kafka

Kafka

GRPC

High Level Architecture

CLI OFagent RESTagent NetconfNorthbound endpoints

Affinity routing reverse proxy

GRPC

Voltha coreDevice Handler

Device Handler

Device Handler

Device Handler

Device Handler

Device Handler

Read Only

Read Only

Read Only

afrouter

Device Profiles

Message Bus

Adapters Ponsim SimOLT OLTA ONUX OLTB ONUY ONUZ

afrouterd

KafkaKafka

KV Store

volthaetcd

Page 5: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 5

High availability model

Subhead Information

Page 6: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 6

High Availability Model

Page 7: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 7

High Availability Model

Page 8: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 8

High Availability Model

Page 9: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 9

High Availability Model

Page 10: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 10

High Availability Model

Page 11: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 11

High Availability Model

Page 12: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 12

High Availability Model

Page 13: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 13

High Availability Model: Affinity Router Structure

Servers

Routers

Backend Clusters

Server: name, addr, port, routers•••

• A server may reference multiple routers• Routers are keyed by proto package &

service• Only one router per package/service can

be defined per server

Router: name, package, service, routes

•••

Route: name, type, methods …•••

• Multiple routes exist per router.• Route selection is based on gRPC method.• Route types include affinity, round robin,

and binding.• Affinity routes use a proto message value

as a backend selector key. Initial binding direction (north or south) is selectable by RPC.

Cluster: nameBackend: name, type, association …

••••••

Connection: name, addr, port•••

• Each cluster can have multiple backends the routing strategy determines which in the backend is used when

• Each backed can have multiple connections. The association determines how identical messages can be identified

Page 14: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 14

High Availability Model

Page 15: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 15

High Availability Model

DeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 16: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 16

High Availability Model

DeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 17: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 17

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 18: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 18

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 19: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 19

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 20: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 20

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

Page 21: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 21

Kafka Adapter Messaging Model

Subhead Information

Page 22: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 22

Kafka Adapter Message Model

A B C D

Page 23: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 23

Per μService Architecture

Subhead Information

Page 24: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 24

Affinity Router μService

GRPC Server(s)

GRPC Client(s)

Backend Connection(s)

Backend(s)

Backend Cluster(s)

Router(s)

Server Handler(s)

Backend Cluster Handler(s)

Backend Handler(s)

GRPC Config Server

Config &Proto descriptor

Config P

roxy

Config Handler

Stream Handler(s)

Codec

Config Data Control Data & Control

Page 25: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 25

Affinity Router Daemon μService

Kubernetes A

PI C

lient

Device Handler μService Client

Polling Handler

Backend Allocator

Afrouter μService Config Client

Affinity Handler

Page 26: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 26

Device Handler μService

gRPC Server – Northbound Request

Transaction Handler

API Handler

voltha etcd Adapter Proxy

Inter Container Kafka Messaging Proxy

Kafka Client

Flow Decomposer

Adapter Request Handler

Logical Device Agent

Device Agent

KV

Client

Kafka Adapter Message Bus

KV

Shim

Device Manager Logical Device Manager

Device State MachineData M

odel

Page 27: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 27

Read Only μService

API Handler

KV

Client

Data Cache Handler

voltha etcd

gRPC Server – Northbound Request

Data M

odel

Page 28: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 28

Adapter ShimsDevice Handler

Device Handler

Device Handler

Inter-Container Kafka Messaging Proxy

Kafka Client

Adapter ProxyCore ProxyCore Request Handler

iAdapter Abstract Class

OLT Adapter Core Features

KV

Client

KV

Shim

OLTDevices

Core Requests

Inter-Adapter Requests

Kafka

Inter-Container Kafka Messaging Proxy

Kafka Client

Adapter ProxyCore ProxyCore Request Handler

iAdapter Abstract Class

ONU Adapter Core Features

KV

Client

KV

Shim

Core Requests

Inter-Adapter Requests

Page 29: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 29

Transaction Flows Through The System

Subhead Information

Page 30: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 30

Modify Request

Affinity Router

Device Handler

OLT Adapter

Envoy

OLT ONU

Kafka

GRPCGRPC

REST

ONU Adapter

Server

Select router based on package and service; query the router for the backend cluster

RouterProvides both backend clusters and backends based on GRPC call

set affinity as required

Backend ClusterQuery the router for the backend based on the method and selector

field value

BackendOpen the south and

northbound streams to the serv er, generate the serial

number, and start monitoring.

StreamStreamSend to serv er

until EOF.

StreamStreamSend to client

until EOF.To the other

active backend

Transaction Handler

etcd

Secure transaction ownership. Lock serial

number in etcd.

Request Processing

Proxy Handler

Messaging Proxy and Client

Page 31: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 31

Read Request

Affinity Router

Read Only Service

Envoy

GRPCGRPC

REST

Server

Select router based on package and service; query the router for the backend cluster

RouterProvides both backend clusters and backends based on GRPC call.

Reads use round-robin

Backend Cluster

Query the router for the backend based on the a round-robin algorithm

BackendOpen the south and

northbound streams to the serv er, generate the serial

number, and start monitoring.

StreamSend to serv er

until EOF.

StreamSend to client

until EOF.

etcd

Read Processing

Load the requested data from etcd

Page 32: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 32

Control Plane Packet Flow Init

Affinity Router

Device Handler

OLT Adapter

OLT ONU

Kafka

GRPC

ONU Adapter

Server

Select router based on package and service; query the router for the backend cluster

Router

Provides both backend clusters and backends based on GRPC call

Backend Cluster

Query the router for the backend and bind to it

permanently

BackendOpen the south and

northbound streams to the serv er, generate the serial

number, and start monitoring.

StreamStreamSend to serv er

until EOF.

StreamStreamSend to client

until EOF.To the other

passive backend

Transaction Handler

etcd

The transaction handler is a noop for control plane flows

Request Processing

Proxy Handler

Messaging Proxy and Client

OFAgent

Page 33: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 33

Kubernetes Integration

Subhead Information

Page 34: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 34

K8s Integration

Page 35: VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level Architecture. CLI. OFagent. RESTagent. Netconf. Northbound endpoints. Affinity routing

35Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary.