Currently the mechanism of a logical device lifecycle is as follows:
- Core creates a logical device
- OF Agent polls the Core to get the list of logical devices every 5 mins
- Once OF Agent gets the list of logical devices, it figures out what are the new and the deleted logical devices. For each new logical devices it creates an OF connection to ONOS. For deleted logical devices it tears down the OF connection(s).
- ONOS reacts accordingly to the created/deleted OF connections.
While this mechanism works well, there is still a potential delay of 5 mins before a logical device create/delete event is seen at ONOS.
This story tracks the effort required to replace the 5 mins polling by an event-based mechanism where the Core would send an event to OFAgent upon creation/deletion of a device. The OFAgent could still keep the 5 mins polling for sanity in case some events got lost.
This mechanism would therefore follow the same mechanism as port status events. The following changes would be required:
- a new logical device event message in the openflow_13.proto file
- changes in core to send an event (reuse the existing grpc event streaming connection) on creation and deletion of logical devices.
- changes in OFAgent to handle the new logical device event. It would then invoke similar methods that the 5 mins polling is doing today.