First implementation of BngProgrammable API
- BngProgrammable interface moved to ONOS core
- BngProgrammable implementation in fabric pipeliner
Change-Id: Ia020d19f305d8819eef7f70453b14cb00fd31af8
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java
index 76122d9..f366e99 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/FabricPipeconfManager.java
@@ -17,6 +17,8 @@
package org.onosproject.pipelines.fabric.impl;
import org.onosproject.inbandtelemetry.api.IntProgrammable;
+
+import org.onosproject.net.behaviour.BngProgrammable;
import org.onosproject.net.behaviour.Pipeliner;
import org.onosproject.net.pi.model.DefaultPiPipeconf;
import org.onosproject.net.pi.model.PiPipeconf;
@@ -26,6 +28,7 @@
import org.onosproject.p4runtime.model.P4InfoParserException;
import org.onosproject.pipelines.fabric.FabricPipeconfService;
import org.onosproject.pipelines.fabric.impl.behaviour.FabricIntProgrammable;
+import org.onosproject.pipelines.fabric.impl.behaviour.bng.FabricBngProgrammable;
import org.onosproject.pipelines.fabric.impl.behaviour.FabricInterpreter;
import org.onosproject.pipelines.fabric.impl.behaviour.pipeliner.FabricPipeliner;
import org.osgi.service.component.annotations.Activate;
@@ -47,6 +50,7 @@
private static final String INT_PROFILE_SUFFIX = "-int";
private static final String FULL_PROFILE_SUFFIX = "-full";
+ private static final String BNG_PROFILE_SUFFIX = "-bng";
private static Logger log = getLogger(FabricPipeconfLoader.class);
@@ -90,7 +94,10 @@
profileName.endsWith(FULL_PROFILE_SUFFIX)) {
pipeconfBuilder.addBehaviour(IntProgrammable.class, FabricIntProgrammable.class);
}
-
+ // Add BngProgrammable behavior for BNG-enabled pipelines.
+ if (profileName.endsWith(BNG_PROFILE_SUFFIX)) {
+ pipeconfBuilder.addBehaviour(BngProgrammable.class, FabricBngProgrammable.class);
+ }
return pipeconfBuilder.build();
}