Resource group to share resources between intents
Change-Id: I5bf7d4261197449924d07dabac841cf8ccbe9389
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalCircuitIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalCircuitIntentCompiler.java
index 9b131ae..a3af158 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalCircuitIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalCircuitIntentCompiler.java
@@ -57,6 +57,7 @@
import org.onosproject.net.intent.IntentService;
import org.onosproject.net.intent.OpticalCircuitIntent;
import org.onosproject.net.intent.OpticalConnectivityIntent;
+import org.onosproject.net.intent.PathIntent;
import org.onosproject.net.optical.OchPort;
import org.onosproject.net.optical.OduCltPort;
import org.onosproject.net.intent.IntentSetMultimap;
@@ -252,6 +253,7 @@
.dst(dstCP)
.signalType(ochPorts.getLeft().signalType())
.bidirectional(intent.isBidirectional())
+ .resourceGroup(intent.resourceGroup())
.build();
if (!supportsMultiplexing) {
@@ -328,7 +330,10 @@
rules.add(connectPorts(higherIntent.getDst(), lowerIntent.getDst(), higherIntent.priority(), slots));
}
- return new FlowRuleIntent(appId, higherIntent.key(), rules, higherIntent.resources());
+ return new FlowRuleIntent(appId, higherIntent.key(), rules,
+ higherIntent.resources(),
+ PathIntent.ProtectionType.PRIMARY,
+ higherIntent.resourceGroup());
}
/**
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index de25fda..f361e99 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -197,6 +197,7 @@
.lambda(lambda)
.signalType(signalType)
.bidirectional(parentIntent.isBidirectional())
+ .resourceGroup(parentIntent.resourceGroup())
.build();
}
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalOduIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalOduIntentCompiler.java
index 1d60875..b01603f 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalOduIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalOduIntentCompiler.java
@@ -47,6 +47,7 @@
import org.onosproject.net.intent.IntentCompiler;
import org.onosproject.net.intent.IntentExtensionService;
import org.onosproject.net.intent.OpticalOduIntent;
+import org.onosproject.net.intent.PathIntent;
import org.onosproject.net.optical.OduCltPort;
import org.onosproject.net.optical.OtuPort;
import org.onosproject.net.resource.Resource;
@@ -175,8 +176,13 @@
rules.addAll(createRules(intent, intent.getDst(), intent.getSrc(), path, slotsMap, true));
}
- return Collections.singletonList(new FlowRuleIntent(appId, intent.key(),
- rules, ImmutableSet.copyOf(path.links())));
+ return Collections.singletonList(
+ new FlowRuleIntent(appId,
+ intent.key(),
+ rules,
+ ImmutableSet.copyOf(path.links()),
+ PathIntent.ProtectionType.PRIMARY,
+ intent.resourceGroup()));
}
throw new OpticalIntentCompilationException("Unable to find suitable lightpath for intent " + intent);
diff --git a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
index 26196b7..9066032 100644
--- a/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
+++ b/apps/optical-model/src/main/java/org/onosproject/net/optical/intent/impl/compiler/OpticalPathIntentCompiler.java
@@ -38,6 +38,7 @@
import org.onosproject.net.intent.IntentCompiler;
import org.onosproject.net.intent.IntentExtensionService;
import org.onosproject.net.intent.OpticalPathIntent;
+import org.onosproject.net.intent.PathIntent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,10 +80,15 @@
rules.addAll(createReverseRules(intent));
}
- return Collections.singletonList(new FlowRuleIntent(appId,
- intent.key(),
- rules,
- intent.resources()));
+ return Collections.singletonList(
+ new FlowRuleIntent(appId,
+ intent.key(),
+ rules,
+ intent.resources(),
+ PathIntent.ProtectionType.PRIMARY,
+ intent.resourceGroup()
+ )
+ );
}
/**