commit | 836d7fe733b11acd6bba16ad35b2f8f974fd51f8 | [log] [tgz] |
---|---|---|
author | pier <pier@opennetworking.org> | Fri Mar 20 11:00:38 2020 +0100 |
committer | Pier Luigi Ventre <pier@opennetworking.org> | Wed Mar 25 19:16:30 2020 +0000 |
tree | fbd75e0caebc19a5e7d94bc02213813314f64def | |
parent | 7df7ce0eb64364fb24d65a94766ecf8dda523f27 [diff] |
Fixes a regression introduced by 23223. Additionally adds a cleanUp method for the pipeliners to reset the internal states between different executions. This was another regression introduced by 23223. Fixes also a memory leak caused by re-init of the grouphandler without terminating its internal references Change-Id: I7b2c2cc4d24b2d838f31755ea75cfcbe1bec5ba7
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/XpliantPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/XpliantPipeline.java index 2dca42d..eced43e 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/XpliantPipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/XpliantPipeline.java
@@ -34,6 +34,13 @@ @Override protected void initGroupHander(PipelinerContext context) { + // Terminate internal references + // We are terminating the references here + // because when the device is offline the apps + // are still sending flowobjectives + if (groupHandler != null) { + groupHandler.terminate(); + } groupHandler = new XpliantGroupHandler(); groupHandler.init(deviceId, context); }
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa3Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa3Pipeline.java index 4632a4f..9ba942d 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa3Pipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa3Pipeline.java
@@ -91,6 +91,13 @@ @Override protected void initGroupHander(PipelinerContext context) { + // Terminate internal references + // We are terminating the references here + // because when the device is offline the apps + // are still sending flowobjectives + if (groupHandler != null) { + groupHandler.terminate(); + } groupHandler = new Ofdpa3GroupHandler(); groupHandler.init(deviceId, context); }
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java index 9799197..8ca774a 100644 --- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OvsOfdpaPipeline.java
@@ -152,6 +152,13 @@ @Override protected void initGroupHander(PipelinerContext context) { + // Terminate internal references + // We are terminating the references here + // because when the device is offline the apps + // are still sending flowobjectives + if (groupHandler != null) { + groupHandler.terminate(); + } groupHandler = new OvsOfdpaGroupHandler(); groupHandler.init(deviceId, context); }