OpenOMCI Status and Future Plans for VOLTHA v2.0

 
OpenOMCI
 
What’s Next
 
Voltha Lockdown Meeting
April 10
th
, 2018 - Dallas, TX
 
ADTRAN, Inc
 
Voltha V1.3 OpenOMCI Status
 
C
o
m
p
l
e
t
e
d
 
F
e
a
t
u
r
e
s
 
(
o
r
 
i
n
 
g
e
r
r
i
t
 
r
e
v
i
e
w
)
 
OpenOMCI running as part of ONU Device
Handler (ADTRAN ONU)
OMCI Frame Generation (MEFrame)
OMCI Communications Channel (OMCI_CC)
OMCI Task Runner (both exclusive and shared
OMCI_CC supported)
External MIB Database (kv-store)
MIB Synchronization State Machine
MIB Upload
MIB Audit 
(stretch goal)
Initial OMCI Tasks
MIB Synchronization
Documentation
 
O
p
e
n
 
F
e
a
t
u
r
e
s
 
(
n
o
t
 
y
e
t
 
i
n
 
p
r
o
g
r
e
s
s
)
 
Initial OMCI Tasks
LCI Service Instantiation
Performance Monitoring 
(stretch goal)
Alarm Synchronization (
stretch goal
)
ME Database
External key-value store
Simple API for ONU to request ME
information.
 
OpenOMCI Unit Test Coverage
 
Name                                            Stmts   Miss Branch BrPart  Cover
---------------------------------------------------------------------------------
voltha/extensions/omci/__init__.py                  0      0      0      0   100%
voltha/extensions/omci/database/__init__.py         0      0      0      0   100%
voltha/extensions/omci/database/mib_db_api.py      55     11      4      2    78%
voltha/extensions/omci/database/mib_db_ext.py     366     40    124     15    89%
voltha/extensions/omci/me_frame.py                103     16     30      8    76%
voltha/extensions/omci/omci.py                      4      0      0      0   100%
voltha/extensions/omci/omci_cc.py                 290    110     60      7    55%
voltha/extensions/omci/omci_defs.py                67      0      6      0   100%
voltha/extensions/omci/omci_entities.py           271     14    137     70    79%
voltha/extensions/omci/omci_frame.py               24      1     32      1    96%
voltha/extensions/omci/omci_me.py                 199     34    110     41    75%
voltha/extensions/omci/omci_messages.py           165      2     18      0    99%
voltha/extensions/omci/tasks/__init__.py            0      0      0      0   100%
voltha/extensions/omci/tasks/task.py               40      2      2      0    95%
voltha/extensions/omci/tasks/task_runner.py       120     15     43     11    84%
---------------------------------------------------------------------------------
TOTAL                                            1704    245    566    155    80%
----------------------------------------------------------------------
Ran 104 tests in 4.665s
 
 
OpenOMCI Remaining Features - 
Needs Prioritization
 
OMCI State Machines
MIB Synchronization State Machine
MIB Download re-sync/reconcile
task (
on MIB Data Sync Mismatch
)
Offline OMCI Provisioning
Software Download and Image
Activation
Alarm Synchronization
Performance Monitoring
OMCI Test Services
 
Other Features
BroadCOM ONU Device Adapter support
Example OMCI Tasks
Containerized OpenOMCI?
Additional ME Frame support as needed by
services supported for the VOLTHA v2.0
Improved External Database performance
CLI and/or NBI Support
Extended OMCI message formats and
operations
Power Shedding Support
ONU Capability discovery 
(support for OMCI
specifications other than v3.0 of AT&T OpenOMCI’s
requirements)
Increased Unit Test Coverage
 
Suggested OpenOMCI Features for VOLTHA v2.0
 
OMCI State Machines (ADTRAN)
MIB Synchronization State Machine
MIB Download re-sync/reconcile
task (
on MIB Data Sync Mismatch
)
Software Download and Image
Activation
Alarm Synchronization 
(stretch goal)
 
Other Features (ADTRAN)
Example OMCI Tasks
Additional ME Frame support as needed by
services supported for VOLTHA v2.0
Improved External Database performance
Increased Unit Test Coverage
 
Other Features 
(help requested)
BroadCOM ONU Device Adapter support
CLI / NBI Support
Additional ME Frame support as needed by
services supported for the VOLTHA v2.0
NBI Support
 
OMCI State Machines 
(help requested)
Performance Monitoring
 
Questions ?
 
Comments?
OpenOMCI
 
V1.3 OpenOMCI Framework  
(MIB DB related)
Vendor ONU Device Adapter
MIB Sync
StateMachine
OnuDeviceEntry
Task Runner
MIB Upload
Task
ME
Database
I-Adapter
Vendor OLT DA
MIB
Resync
Task
Stretch
Goals
MIB
Audit Task
VOLTHA
v1.3.0
Commitments
ME Events
PUB/SUB
Interface
OMCI_CC
Get MIB Data
Sync Task
 
Query ME requests
 
ME CRUD requests
 
Start/Stop requests
 
OMCI Rx/Tx
Requests
 OpenOMCI Events
OmciAdapter
Agent
MIB
Reconcile
Task(s)
 
Base Philosophy & Requirements
 
For all applicable classes being proposed:
Make it easy for ONU Adapters to derive and overload functionality
Python classes for use in a vendor’s ONU Device Adaptor (not a separate
docker container)
Additions/modifications to any existing classes should avoid breaking any
existing functionality
Focus on needs of initial use cases
Clear documentation for each class and for a class’s methods
90%+ Unit test coverage goal for any new classes
Allow ONU Device Adapter access to some of the classes and class
attributes (not all interactions go through the state machine)
 
 
ONU Task Runner 
(Formerly ONU State Machine in previous presentations)
 
This is the main interface from an ONU Device Adapter into the OpenOMCI Stack
Provides
Startup/Shutdown of OMCI Stack.  
Lifetime starts at ONU Activation completion.
A set of task classes responsible for various ONU OMCI Stack actions such as:
MIB Synchronization
ONU Physical and Software Capability Discovery
Alarm Synchronization
Various Service Instantiations (LCI, VoIP, Video, ...) - Based on required use cases
Software Image Download, Commit, and Activation
PM Statistics (and OLT time synch, but not Time of Day)
Others as needed (power shedding, ToD)
Each task runs to completion before next task handled.
Task queue has tasks in a defined priority so next highest runs when Stack is free
Each task (and main state machine) is a single class that can be overloaded as needed by an
ONU DA to customize
 
OMCI State Machine
 
Initialization method will:
Register all known tasks. You can derive your own if you wish use customized tasks
Start/Stop method to control the state machine
Task start method to add or schedule a new task to be executed.
Responsible for ME database
Probably several additional methods to support task functionality
 
 
 
 
Reference T-REC-G.Imp984.4-2008120S!!MSW-E.doc (ITU)
 
ME Database
 
An External DB to contain ME attribute values that were discovered during MIB
Synchronization
Needed to allow for hitless recovery after an ONU Device Adapter container
migration or restart
Leverage information in the EntityClass ME definition to create the storage
attributes
 
Common OMCI CC class
 
Add a common class to handle all OMCI Tx and Rx tasks that can be used (and
extended as needed) for all ONU Device Adapters to  .../voltha/extensions/omci
 
User settable timeout for OMCI responses
Matches Rx TID to Tx TID
Send() returns a deferred that fires on Rx
Separate queues for autonomous messages
Statistics to help in diagnosing issues
 
 
 
 
 
B
a
s
i
c
 
R
e
q
u
i
r
e
m
e
n
t
s
:
 
MEFrame - ME Message Creation
 
An Python base-class that wraps message attributes and provides methods for
generating proper ME actions (create, delete, get, set, …)
 
B
a
s
i
c
 
R
e
q
u
i
r
e
m
e
n
t
s
:
 
Extensive checking of input parameters to validate data is correct during frame
generation
Flexible method to supply ME attributes to ME Frame initializer
A majority of MEs can be coded in two lines or less
 
 
ONU MIB Synchronizer
 
Responsible for synchronizing the ONU Device Adapters MIB with that of the ONU
Hardware
Performs ONT Bring up (MIB Reset, MIB upload, and MIB Download)
Monitors/sinks AVC notifications from the ONU
Maintains ONU Device Adapter MIB synchronization/resynchronization with
that of the ONU Hardware
 
ONU Alarm Synchronizer
 
The ONU Alarm Synchronizer is responsible for monitoring the alarm status of the
ONU hardware
Monitor/sinks Alarm notifications from the ONU
Performs alarm audit and resynchronization as needed with the ONU
 
V1.3 OpenOMCI Framework
Vendor ONU Device Adapter
OMCI-CC
EntityClass
MEFrame
OMCIFrame
I-Adapter
Task
Runner
ME
Database
Vendor OLT DA
OLT H/W
ONU H/W
Slide Note
Embed
Share

OpenOMCI has completed various features for VOLTHA v1.3 and is now focusing on prioritizing remaining tasks for VOLTHA v2.0. The current coverage of unit tests is at 80%, with ongoing work on improving performance, supporting additional functionalities like power shedding, and enhancing the OMCI framework for seamless integration with the VOLTHA platform.

  • OpenOMCI
  • VOLTHA
  • OMCI State Machines
  • Unit Test Coverage
  • Future Development

Uploaded on Sep 16, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. OpenOMCI What s Next Voltha Lockdown Meeting April 10th, 2018 - Dallas, TX ADTRAN, Inc

  2. Voltha V1.3 OpenOMCI Status Completed Features (or in gerrit review) Open Features (not yet in progress) OpenOMCI running as part of ONU Device Handler (ADTRAN ONU) OMCI Frame Generation (MEFrame) OMCI Communications Channel (OMCI_CC) OMCI Task Runner (both exclusive and shared OMCI_CC supported) External MIB Database (kv-store) MIB Synchronization State Machine MIB Upload MIB Audit (stretch goal) Initial OMCI Tasks MIB Synchronization Documentation Initial OMCI Tasks LCI Service Instantiation Performance Monitoring (stretch goal) Alarm Synchronization (stretch goal) ME Database External key-value store Simple API for ONU to request ME information.

  3. OpenOMCI Unit Test Coverage Name Stmts Miss Branch BrPart Cover --------------------------------------------------------------------------------- voltha/extensions/omci/__init__.py 0 0 0 0 100% voltha/extensions/omci/database/__init__.py 0 0 0 0 100% voltha/extensions/omci/database/mib_db_api.py 55 11 4 2 78% voltha/extensions/omci/database/mib_db_ext.py 366 40 124 15 89% voltha/extensions/omci/me_frame.py 103 16 30 8 76% voltha/extensions/omci/omci.py 4 0 0 0 100% voltha/extensions/omci/omci_cc.py 290 110 60 7 55% voltha/extensions/omci/omci_defs.py 67 0 6 0 100% voltha/extensions/omci/omci_entities.py 271 14 137 70 79% voltha/extensions/omci/omci_frame.py 24 1 32 1 96% voltha/extensions/omci/omci_me.py 199 34 110 41 75% voltha/extensions/omci/omci_messages.py 165 2 18 0 99% voltha/extensions/omci/tasks/__init__.py 0 0 0 0 100% voltha/extensions/omci/tasks/task.py 40 2 2 0 95% voltha/extensions/omci/tasks/task_runner.py 120 15 43 11 84% --------------------------------------------------------------------------------- TOTAL 1704 245 566 155 80% ---------------------------------------------------------------------- Ran 104 tests in 4.665s

  4. OpenOMCI Remaining Features - Needs Prioritization Other Features OMCI State Machines BroadCOM ONU Device Adapter support Example OMCI Tasks Containerized OpenOMCI? Additional ME Frame support as needed by services supported for the VOLTHA v2.0 Improved External Database performance CLI and/or NBI Support Extended OMCI message formats and operations Power Shedding Support ONU Capability discovery (support for OMCI specifications other than v3.0 of AT&T OpenOMCI s requirements) Increased Unit Test Coverage MIB Synchronization State Machine MIB Download re-sync/reconcile task (on MIB Data Sync Mismatch) Offline OMCI Provisioning Software Download and Image Activation Alarm Synchronization Performance Monitoring OMCI Test Services

  5. Suggested OpenOMCI Features for VOLTHA v2.0 Other Features (ADTRAN) OMCI State Machines (ADTRAN) Example OMCI Tasks Additional ME Frame support as needed by services supported for VOLTHA v2.0 Improved External Database performance Increased Unit Test Coverage MIB Synchronization State Machine MIB Download re-sync/reconcile task (on MIB Data Sync Mismatch) Software Download and Image Activation Alarm Synchronization (stretch goal) Other Features (help requested) OMCI State Machines (help requested) BroadCOM ONU Device Adapter support CLI / NBI Support Additional ME Frame support as needed by services supported for the VOLTHA v2.0 NBI Support Performance Monitoring

  6. Questions ? Comments?

  7. V1.3 OpenOMCI Framework (MIB DB related) Vendor ONU Device Adapter Query ME requests OpenOMCI MIB I-Adapter Audit Task MIB Upload Task MIB Resync Task OMCI_CC Vendor OLT DA VOLTHA v1.3.0 Commitments MIB Get MIB Data Sync Task Reconcile Task(s) OMCI Rx/Tx Requests OmciAdapter Agent Task Runner Stretch Goals ME MIB Sync StateMachine Database ME CRUD requests PUB/SUB Interface OnuDeviceEntry Start/Stop requests

  8. Base Philosophy & Requirements For all applicable classes being proposed: Make it easy for ONU Adapters to derive and overload functionality Python classes for use in a vendor s ONU Device Adaptor (not a separate docker container) Additions/modifications to any existing classes should avoid breaking any existing functionality Focus on needs of initial use cases Clear documentation for each class and for a class s methods 90%+ Unit test coverage goal for any new classes Allow ONU Device Adapter access to some of the classes and class attributes (not all interactions go through the state machine)

  9. ONU Task Runner (Formerly ONU State Machine in previous presentations) This is the main interface from an ONU Device Adapter into the OpenOMCI Stack Provides Startup/Shutdown of OMCI Stack. Lifetime starts at ONU Activation completion. A set of task classes responsible for various ONU OMCI Stack actions such as: MIB Synchronization ONU Physical and Software Capability Discovery Alarm Synchronization Various Service Instantiations (LCI, VoIP, Video, ...) - Based on required use cases Software Image Download, Commit, and Activation PM Statistics (and OLT time synch, but not Time of Day) Others as needed (power shedding, ToD) Each task runs to completion before next task handled. Task queue has tasks in a defined priority so next highest runs when Stack is free Each task (and main state machine) is a single class that can be overloaded as needed by an ONU DA to customize

  10. OMCI State Machine Initialization method will: Register all known tasks. You can derive your own if you wish use customized tasks Start/Stop method to control the state machine Task start method to add or schedule a new task to be executed. Responsible for ME database Probably several additional methods to support task functionality

  11. ME Database An External DB to contain ME attribute values that were discovered during MIB Synchronization Needed to allow for hitless recovery after an ONU Device Adapter container migration or restart Leverage information in the EntityClass ME definition to create the storage attributes

  12. Common OMCI CC class Add a common class to handle all OMCI Tx and Rx tasks that can be used (and extended as needed) for all ONU Device Adapters to .../voltha/extensions/omci Basic Requirements: User settable timeout for OMCI responses Matches Rx TID to Tx TID Send() returns a deferred that fires on Rx Separate queues for autonomous messages Statistics to help in diagnosing issues

  13. MEFrame - ME Message Creation An Python base-class that wraps message attributes and provides methods for generating proper ME actions (create, delete, get, set, ) Basic Requirements: Extensive checking of input parameters to validate data is correct during frame generation Flexible method to supply ME attributes to ME Frame initializer A majority of MEs can be coded in two lines or less

  14. ONU MIB Synchronizer Responsible for synchronizing the ONU Device Adapters MIB with that of the ONU Hardware Performs ONT Bring up (MIB Reset, MIB upload, and MIB Download) Monitors/sinks AVC notifications from the ONU Maintains ONU Device Adapter MIB synchronization/resynchronization with that of the ONU Hardware

  15. ONU Alarm Synchronizer The ONU Alarm Synchronizer is responsible for monitoring the alarm status of the ONU hardware Monitor/sinks Alarm notifications from the ONU Performs alarm audit and resynchronization as needed with the ONU

  16. V1.3 OpenOMCI Framework Vendor ONU Device Adapter Vendor OLT DA OMCI Tasks Task Runner I-Adapter MEFrame OMCIFrame OMCI-CC OLT H/W ME Database ONU H/W EntityClass

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#