mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-15 17:31:31 +02:00
This patch is an attempt to solve issues observed when restarting both switches and ONOS nodes. Most of the issues seemed to depend on a brittle mastership handling when deploying the pipeline. With this patch, GDP registers devices to the core with available=false (i.e. offline) and marks them online only when the P4 pipeline has been deployed to the device. A new PiPipeconfWatchdogService takes care of deploying pipelines and producing event when devices are ready. Moreover, we fix a race condition where pipeconf-related behaviors were not found. This was caused by GDP enforcing the merged driver name in the network config, while external entities (e.g. Mininet) were pushing a JSON blob with the base driver name. This patch removes the need to rely on such a trick and instead uses pipeconf-aware logic directly in the driver manager (change #19622). Finally, we fix issues in P4RuntimeClientImpl that were causing the stream channel not detecting unreachable devices. The solution is to follow gRPC APIs and re-instantiate a new channel once the first fails. Change-Id: I6fbc91859c0fb58a6db3bc197b7081a8fe9f97f7