voltha architecture - open networking foundation · 2018-12-18 · kafka. kafka. grpc. high level...

Post on 28-Jun-2020

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

VOLTHA Architecture

Sergio Slobodrian

Wednesday December 5, 2018

V2.0

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

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

High Level Architecture

Subhead Information

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

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

High availability model

Subhead Information

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

High Availability Model

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

High Availability Model

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

High Availability Model

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

High Availability Model

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

High Availability Model

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

High Availability Model

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

High Availability Model

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

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

High Availability Model

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

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

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

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

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

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

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

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

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

High Availability ModelDeviceID BackendCluster

DDD129827 CPx

CCC839032 CPy

XZX187160 CPz

Package Service

voltha VolthaService

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

Kafka Adapter Messaging Model

Subhead Information

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

Kafka Adapter Message Model

A B C D

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

Per μService Architecture

Subhead Information

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

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

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

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

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

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

Transaction Flows Through The System

Subhead Information

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

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

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

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

Kubernetes Integration

Subhead Information

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

K8s Integration

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

top related