Edgecore ASFvOLT16 VOLTHA Adapter and Driver Kim Kempf, Sr ... · MT08.3.17 Edgecore ASFvOLT16...
Transcript of Edgecore ASFvOLT16 VOLTHA Adapter and Driver Kim Kempf, Sr ... · MT08.3.17 Edgecore ASFvOLT16...
MT08.3.17
Edgecore ASFvOLT16 VOLTHA Adapterand Driver
Kim Kempf, Sr. Systems ArchitectCORD Build 2017, San Jose
November 8, 2017
2
Edgecore ASFvOLT16 Whitebox OLT
VOLTHA
ASFvOLT16_oltadapter
• DisaggregatedOLTmeansminimizingtheamountofsoftwareinthedevice
• VOLTHAprovidesthevOLTcontrolabstraction• VOLTHAdeviceadapterinteractswithOLThardware• SWrequiredintheOLTtointerfacetotheadapter
• ButASFvOLT16hasnoexistingOLTcontrolsoftware• NoexistingopensourceOLTcontrolsoftware
In-OLTcontrolis:NETCONF?REST?
ThinAPI?Custom?
3
Edgecore ASFvOLT16 Whitebox OLT
• In-OLTsoftwareisneededfor:• EmbeddedCPUoperatingsystem• BroadcomMaplePONMACSoCs• BroadcomDNXQumranEthernetswitch• Otherhardwareandfunctions
• XFP,QSFP,Fans,Timing• Softwareupdate• Healthandstatus
4
Edgecore ASFvOLT16 Whitebox OLT
OpenNetworkLinux(OCP)
BroadcomMapleSDK
• Softwaresolutions:• ONLcanprovidefoundationforNOS• ONLPprovidesmostHWperipheralsupport• BroadcomMapleSDKforPONMAC• BroadcomSwitchSDKforQumranswitch• BroadcomBAL– BroadbandAbstractionLayer
• ProvidesabstractiontomanageMapleandQumranasanOLTsystem
• IntendedasfoundationforOLTcontrolFWBroadcomSwitchSDK
OtherHW andfunctions
BroadcomBAL
5
Edgecore ASFvOLT16 Whitebox OLT
• BALprovidesobjectorientedOLTaccessAPI
• HidesdetailsofPONMACandswitchAPIcalls
6
Edgecore ASFvOLT16 Whitebox OLT
• Theproblem?• BAL/MapleandQumranSDKsourcecodeisproprietaryandrequires
sourcecodelicenseagreement(SLA)betweenequipmentproviderandBroadcom
• NoequivalenttotheOF-DPACommunityDevelopmentPackage(CDP)forBALexistsfromBroadcom
• TheVOLTHAcommunitywantsASFvOLT16tobeasopensourceaspossible
• Thesolution?• WorkwithBroadcomtoopentheBALAPI(callsandobjectmodel)• ProposeASFvOLT16architecturetopartitionclosedandopensource
7
Edgecore ASFvOLT16 Whitebox OLT
• BALAPIisopen,adaptercanaccessallfunctionality• GRPCprovidesnaturalboundarybetweenopen
adapterandin-OLTdriverlinkingtoclosedBALAPIsourcecodefromBroadcom
Qumran
Maple
asfvolt16_oltadapter
Libbal_api_dist.sovoltha_bal_driver
UsingBALAPI
Bal_core_dist
Runtime dynamic linking
BAL API calls using GRPC
ASFvOLT16
BAL IPC messaging
8
ASFvOLT16 System Architecture Overview
• BroadcomBALisanimportantbuildingblockbutnotacompleteOLTsolution
• MoresoftwareisneededtomanageHWnotcoveredbyBAL• Fan,PSU,Opticalmodules,etc.• VitalProductData(S/N,Model,rev)• Softwareupdate/activate
• AnythingnotundercontrolofBALishandledbyDMTFRedfish®
vOLTHA
asfvolt16_oltadapter(Python)
ASFvOLT16OLTCPU
BALobjs
BALCore/Utils
QumranAPI
MapleSDK QumranSDK
BCM88470Qumran(QAX)
EthernetPSU/FAN(FPGA)
XFP/QSFP
SyncE/IEEE1588Timing
VPD(EEPROM)
Board(Reset/WD)
Uplink
Ethernet
Maple NNIPON Maple NNIPON Maple NNIPON Maple NNIPON
RedfishServer
HTTPS/REST
BoardConfigOpticssupervisionEquip/EnvAlarmsVPDextractOLTreset/rebootOLTSWupdate/activategRPC
ONLPAPI
MapleAPI
voltha_bal_driver
BALindobjects
C-GRPC
gRPC
vOLTHAIAdapterInterface
OpenNetworkLinux
ONIE
bal_core_dist
BALind
BALobjects
FlowsInterfaceStatisticsIndicationsOMCIPktProxyCPUPktProxy
vOLTHACore
OLTHWCtrlStatus(OHCS)
BAL_OLTAPImapping
StartupConfig
In-OLTDebug/Develcomponents
bcm_user_appl
bal_cli
bcm.user
onlpd
faultd
onlpdump
RedfishClient
C-GRPC
Thermalmonitor
9
ASFvOLT16 Whitebox OLT
• SourcecodeforASFvOLT16adapter• git clone https://gerrit.opencord.org/voltha• voltha/adapters/asfvolt16_olt
• InterfaceadapterforASFvOLT16• GRPCclient/serverconnectionclasses
• voltha/adapters/asfvolt16_olt/protos• Protobufs forBALobjectmodelandAPI
10
ASFvOLT16 Whitebox OLT
• SourcecodeforASFvOLT16driver(voltha_bal_driver)• git clone https://gerrit.opencord.org/asfvolt16-driver• Seesrc/README.mdforbuildinstructions• ThefollowingcomponentsarerequiredfromBroadcom:
• BAL/MapleSDK– version2.4.3.6• QumranSDK– version6.5.7• ASFvOLT16BALpatch– versionACCTON_BAL_2.4.3.6-V201710131639• ContactDaveBaron@BroadcomreferencecaseCS3233745
• ONLBuildenvironmentforASFvOLT16• https://wiki.opencord.org/download/attachments/2556712/ONL_Buil
d_Environment_Installation_Guide.pdf?api=v2
11
Edgecore ASFvOLT16
• Possible deployment scenarios• Similar to Edgecore OF-DPA• Pre-built binary package from Edgecore,
ONF or SI (system integrator)
12
Edgecore ASFvOLT16
• Future work• C++ based voltha_bal_driver• Use C++ based GRPC• In-band management support• OLT auto discovery• Expose more Maple features though BAL• Expanded use of syslog by voltha_bal_driver
13
• Accton/Edgecore• ALTEN Calsoft Labs • AT&T• Broadcom• Ciena• ONF• Radisys
Community Collaborators for ASFvOLT16
Thank You
14Radisys Corporation - CONFIDENTIAL
15
BACKUP
16
ASFvOLT16 Whitebox OLT
• ASFvOLT16DeviceManagementproposal(VOL-248epic)• CreateaRedfishRESTfulqueryandcontrolserviceinOLT• Redfishserverwillprovideaccesstofunctionssuchas:
• Firmwareupdateandactivate• OLTgracefulreboot• Monitoringoffansandpowersupplyunits(PSU)• MonitoringofXFP/QSFPopticalmodules• Sessionmanagement• Extractionofvitalproductdata
17
ASFvOLT16 Whitebox OLT
• ASFvOLT16DeviceManagementproposal(VOL-248epic)• CreateaRedfishclientserviceinasfvolt16_oltadapter• UsesRESTtoaccessRedfishserverinOLT• Redfishclientwillimplement:
• Sessionlogin• Getstatusoffans,PSUs,XFPs,QSFPs• Initiateandmonitorfirmwareupdateandactivation• OLTreboot• SubmitalarmstoVOLTHA• Configureboardoptions(watchdog,SyncE,portmodes)
18
ASFvOLT16 Whitebox OLT
Example:
Redfish Server Data Model for Health Status
19
• Accton/Edgecore• Reliable ASFvOLT16 hardware• Porting Broadcom BAL/Maple/Qumran SDK to ONL kernel for
x86_64 arch• BAL patch and patch versioning/build documentation• Redfish server support from OCP design
• Broadcom• Provided the open-source API for the BAL framework• Distributing the ASFvOLT16 BAL patch via CSP• Supporting PoC demos and driver development
Community Collaborators for ASFvOLT16
20
• ONF• Edgecore adapter project kickoff• Proposal for GRPC device simulator w/Juniper C-GRPC• BAL API .proto files• Asfvolt16_olt.py adapter initial framework and adapter class
• AT&T• Use case and feature set required from BAL API
• ALTEN Calsoft Labs/Ciena• Proposal for OLT device management using Redfish client/server• Redfish client in asfvolt16_olt adapter using REST APIs• Data models for management and configuration
Community Collaborators for ASFvOLT16
21
• Radisys• Leading community asfvolt16_olt adapter and in-OLT driver initiative• Developing in-OLT BAL API control driver (voltha_bal_driver)• Worked directly with Broadcom to:
• Develop understanding of VOLTHA community need for open BAL API• Negotiate required BAL API feature set• Define BAL package and patch distribution model suitable for SLA
• Worked directly with Edgecore/Accton to:• Transfer PoC result on Broadcom reference OLT to ASFvOLT16• Develop BAL acceptance test to ensure voltha_bal_driver foundation• Define BAL patch components and versioning method
Community Collaborators for ASFvOLT16