Toggle navigation
Toggle navigation
This project
Loading...
Sign in
홍길동
/
onos
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Ray Milkey
2015-03-10 18:20:18 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c24cde3305be1fbc6b25caf69a9f1aadbbf1c8da
c24cde33
1 parent
20207dfc
Add priority to Intents
Change-Id: Ibe63356f5b15a6aa6ca7731dba3382c3317a95ec
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
156 additions
and
59 deletions
apps/intent-perf/src/main/java/org/onosproject/intentperf/IntentPerfInstaller.java
cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java
cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java
core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
core/api/src/main/java/org/onosproject/net/intent/Intent.java
core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java
core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/HostToHostIntentCompiler.java
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MultiPointToSinglePointIntentCompiler.java
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PointToPointIntentCompiler.java
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/SinglePointToMultiPointIntentCompiler.java
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/TwoWayP2PIntentCompiler.java
core/net/src/main/java/org/onosproject/net/intent/impl/installer/LinkCollectionIntentInstaller.java
core/net/src/main/java/org/onosproject/net/intent/impl/installer/MplsPathIntentInstaller.java
core/net/src/main/java/org/onosproject/net/intent/impl/installer/PathIntentInstaller.java
core/net/src/test/java/org/onosproject/net/intent/impl/compiler/PointToPointIntentCompilerTest.java
core/net/src/test/java/org/onosproject/net/intent/impl/installer/PathConstraintCalculationTest.java
core/net/src/test/java/org/onosproject/net/intent/impl/installer/PathIntentInstallerTest.java
web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java
web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
apps/intent-perf/src/main/java/org/onosproject/intentperf/IntentPerfInstaller.java
View file @
c24cde3
...
...
@@ -210,7 +210,8 @@ public class IntentPerfInstaller {
Intent
intent
=
new
PointToPointIntent
(
appId
,
key
,
selector
,
treatment
,
ingress
,
egress
,
Collections
.
emptyList
());
Collections
.
emptyList
(),
Intent
.
DEFAULT_INTENT_PRIORITY
);
result
.
add
(
intent
);
// Bump up the counter and remember this as the last key used.
...
...
cli/src/main/java/org/onosproject/cli/net/AddMultiPointToSinglePointIntentCommand.java
View file @
c24cde3
...
...
@@ -75,7 +75,8 @@ public class AddMultiPointToSinglePointIntentCommand extends ConnectivityIntentC
Intent
intent
=
new
MultiPointToSinglePointIntent
(
appId
(),
key
(),
selector
,
treatment
,
ingressPoints
,
egress
,
constraints
);
constraints
,
priority
());
service
.
submit
(
intent
);
print
(
"Multipoint to single point intent submitted:\n%s"
,
intent
.
toString
());
}
...
...
cli/src/main/java/org/onosproject/cli/net/AddPointToPointIntentCommand.java
View file @
c24cde3
...
...
@@ -70,7 +70,8 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand {
Intent
intent
=
new
PointToPointIntent
(
appId
(),
key
(),
selector
,
treatment
,
ingress
,
egress
,
constraints
);
ingress
,
egress
,
constraints
,
priority
());
service
.
submit
(
intent
);
print
(
"Point to point intent submitted:\n%s"
,
intent
.
toString
());
}
...
...
cli/src/main/java/org/onosproject/cli/net/AddSinglePointToMultiPointIntentCommand.java
View file @
c24cde3
...
...
@@ -15,6 +15,10 @@
*/
package
org
.
onosproject
.
cli
.
net
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.apache.karaf.shell.commands.Argument
;
import
org.apache.karaf.shell.commands.Command
;
import
org.onosproject.net.ConnectPoint
;
...
...
@@ -27,10 +31,6 @@ import org.onosproject.net.intent.Constraint;
import
org.onosproject.net.intent.IntentService
;
import
org.onosproject.net.intent.SinglePointToMultiPointIntent
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
static
org
.
onosproject
.
net
.
DeviceId
.
deviceId
;
import
static
org
.
onosproject
.
net
.
PortNumber
.
portNumber
;
...
...
@@ -79,7 +79,8 @@ public class AddSinglePointToMultiPointIntentCommand extends ConnectivityIntentC
treatment
,
ingressPoint
,
egressPoints
,
constraints
);
constraints
,
priority
());
service
.
submit
(
intent
);
print
(
"Single point to multipoint intent submitted:\n%s"
,
intent
.
toString
());
}
...
...
cli/src/main/java/org/onosproject/cli/net/ConnectivityIntentCommand.java
View file @
c24cde3
...
...
@@ -28,6 +28,7 @@ import org.onosproject.net.flow.DefaultTrafficSelector;
import
org.onosproject.net.flow.TrafficSelector
;
import
org.onosproject.net.flow.TrafficTreatment
;
import
org.onosproject.net.intent.Constraint
;
import
org.onosproject.net.intent.Intent
;
import
org.onosproject.net.intent.Key
;
import
org.onosproject.net.intent.constraint.BandwidthConstraint
;
import
org.onosproject.net.intent.constraint.LambdaConstraint
;
...
...
@@ -96,6 +97,11 @@ public abstract class ConnectivityIntentCommand extends AbstractShellCommand {
required
=
false
,
multiValued
=
false
)
private
String
setEthDstString
=
null
;
// Priorities
@Option
(
name
=
"-p"
,
aliases
=
"--priority"
,
description
=
"Priority"
,
required
=
false
,
multiValued
=
false
)
private
int
priority
=
Intent
.
DEFAULT_INTENT_PRIORITY
;
/**
* Constructs a traffic selector based on the command line arguments
* presented to the command.
...
...
@@ -200,4 +206,13 @@ public abstract class ConnectivityIntentCommand extends AbstractShellCommand {
}
return
key
;
}
/**
* Gets the priority to use for the intent.
*
* @return priority
*/
protected
int
priority
()
{
return
priority
;
}
}
...
...
cli/src/main/java/org/onosproject/cli/net/IntentCycleCommand.java
View file @
c24cde3
...
...
@@ -130,7 +130,8 @@ public class IntentCycleCommand extends AbstractShellCommand
intents
.
add
(
new
PointToPointIntent
(
appId
(),
Key
.
of
(
i
+
keyOffset
,
appId
()),
selector
,
treatment
,
ingress
,
egress
,
Collections
.
emptyList
()));
Collections
.
emptyList
(),
Intent
.
DEFAULT_INTENT_PRIORITY
));
}
return
intents
;
...
...
cli/src/main/java/org/onosproject/cli/net/IntentPushTestCommand.java
View file @
c24cde3
...
...
@@ -139,7 +139,8 @@ public class IntentPushTestCommand extends AbstractShellCommand
intents
.
add
(
new
PointToPointIntent
(
appId
(),
Key
.
of
(
i
+
keyOffset
,
appId
()),
selector
,
treatment
,
ingress
,
egress
,
Collections
.
emptyList
()));
Collections
.
emptyList
(),
Intent
.
DEFAULT_INTENT_PRIORITY
));
}
return
intents
;
...
...
core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
View file @
c24cde3
...
...
@@ -61,7 +61,8 @@ public abstract class ConnectivityIntent extends Intent {
Collection
<
NetworkResource
>
resources
,
TrafficSelector
selector
,
TrafficTreatment
treatment
)
{
this
(
appId
,
null
,
resources
,
selector
,
treatment
,
Collections
.
emptyList
());
this
(
appId
,
null
,
resources
,
selector
,
treatment
,
Collections
.
emptyList
(),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -83,7 +84,8 @@ public abstract class ConnectivityIntent extends Intent {
Collection
<
NetworkResource
>
resources
,
TrafficSelector
selector
,
TrafficTreatment
treatment
)
{
this
(
appId
,
key
,
resources
,
selector
,
treatment
,
Collections
.
emptyList
());
this
(
appId
,
key
,
resources
,
selector
,
treatment
,
Collections
.
emptyList
(),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -99,6 +101,7 @@ public abstract class ConnectivityIntent extends Intent {
* @param selector traffic selector
* @param treatment treatment
* @param constraints optional prioritized list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if the selector or treatment is null
*/
...
...
@@ -107,8 +110,9 @@ public abstract class ConnectivityIntent extends Intent {
Collection
<
NetworkResource
>
resources
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
resources
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
key
,
resources
,
priority
);
this
.
selector
=
checkNotNull
(
selector
);
this
.
treatment
=
checkNotNull
(
treatment
);
this
.
constraints
=
checkNotNull
(
constraints
);
...
...
@@ -126,6 +130,7 @@ public abstract class ConnectivityIntent extends Intent {
* @param selector traffic selector
* @param treatment treatment
* @param constraints optional prioritized list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if the selector or treatment is null
*/
...
...
@@ -133,8 +138,9 @@ public abstract class ConnectivityIntent extends Intent {
Collection
<
NetworkResource
>
resources
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
null
,
resources
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
null
,
resources
,
priority
);
this
.
selector
=
checkNotNull
(
selector
);
this
.
treatment
=
checkNotNull
(
treatment
);
this
.
constraints
=
checkNotNull
(
constraints
);
...
...
core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
View file @
c24cde3
...
...
@@ -106,7 +106,8 @@ public final class HostToHostIntent extends ConnectivityIntent {
TrafficSelector
selector
,
TrafficTreatment
treatment
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
DEFAULT_INTENT_PRIORITY
);
// TODO: consider whether the case one and two are same is allowed
this
.
one
=
checkNotNull
(
one
);
...
...
@@ -146,6 +147,7 @@ public final class HostToHostIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/Intent.java
View file @
c24cde3
...
...
@@ -22,6 +22,7 @@ import org.onosproject.net.NetworkResource;
import
java.util.Collection
;
import
java.util.Objects
;
import
static
com
.
google
.
common
.
base
.
Preconditions
.
checkArgument
;
import
static
com
.
google
.
common
.
base
.
Preconditions
.
checkNotNull
;
import
static
com
.
google
.
common
.
base
.
Preconditions
.
checkState
;
...
...
@@ -38,6 +39,11 @@ public abstract class Intent {
private
final
ApplicationId
appId
;
private
final
Key
key
;
private
final
int
priority
;
public
static
final
int
DEFAULT_INTENT_PRIORITY
=
100
;
public
static
final
int
MAX_PRIORITY
=
(
1
<<
16
)
-
1
;
public
static
final
int
MIN_PRIORITY
=
1
;
private
final
Collection
<
NetworkResource
>
resources
;
private
static
IdGenerator
idGenerator
;
...
...
@@ -50,6 +56,7 @@ public abstract class Intent {
this
.
appId
=
null
;
this
.
key
=
null
;
this
.
resources
=
null
;
this
.
priority
=
DEFAULT_INTENT_PRIORITY
;
}
/**
...
...
@@ -60,7 +67,7 @@ public abstract class Intent {
*/
protected
Intent
(
ApplicationId
appId
,
Collection
<
NetworkResource
>
resources
)
{
this
(
appId
,
null
,
resources
);
this
(
appId
,
null
,
resources
,
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -72,11 +79,14 @@ public abstract class Intent {
*/
protected
Intent
(
ApplicationId
appId
,
Key
key
,
Collection
<
NetworkResource
>
resources
)
{
Collection
<
NetworkResource
>
resources
,
int
priority
)
{
checkState
(
idGenerator
!=
null
,
"Id generator is not bound."
);
checkArgument
(
priority
<=
MAX_PRIORITY
&&
priority
>=
MIN_PRIORITY
);
this
.
id
=
IntentId
.
valueOf
(
idGenerator
.
getNewId
());
this
.
appId
=
checkNotNull
(
appId
,
"Application ID cannot be null"
);
this
.
key
=
(
key
!=
null
)
?
key
:
Key
.
of
(
id
.
fingerprint
(),
appId
);
this
.
priority
=
priority
;
this
.
resources
=
checkNotNull
(
resources
);
}
...
...
@@ -99,6 +109,15 @@ public abstract class Intent {
}
/**
* Returns the priority of the intent.
*
* @return intent priority
*/
public
int
priority
()
{
return
priority
;
}
/**
* Returns the collection of resources required for this intent.
*
* @return collection of resources; may be null
...
...
core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
View file @
c24cde3
...
...
@@ -59,7 +59,7 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
ConnectPoint
ingressPoint
,
ConnectPoint
egressPoint
)
{
this
(
appId
,
selector
,
treatment
,
links
,
ingressPoint
,
egressPoint
,
Collections
.
emptyList
());
Collections
.
emptyList
()
,
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -74,6 +74,7 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
* @param ingressPoint ingress point
* @param egressPoint egress point
* @param constraints optional list of constraints
* @param priority priority to use for the flows generated by this intent
* @throws NullPointerException {@code path} is null
*/
public
LinkCollectionIntent
(
ApplicationId
appId
,
...
...
@@ -82,8 +83,9 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
Set
<
Link
>
links
,
ConnectPoint
ingressPoint
,
ConnectPoint
egressPoint
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
resources
(
links
),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
resources
(
links
),
selector
,
treatment
,
constraints
,
priority
);
this
.
links
=
links
;
this
.
ingressPoints
=
ImmutableSet
.
of
(
ingressPoint
);
this
.
egressPoints
=
ImmutableSet
.
of
(
egressPoint
);
...
...
@@ -101,6 +103,7 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
* @param ingressPoints Set of ingress points
* @param egressPoints Set of egress points
* @param constraints the constraints
* @param priority priority to use for the flows generated by this intent
* @throws NullPointerException {@code path} is null
*/
public
LinkCollectionIntent
(
ApplicationId
appId
,
...
...
@@ -109,8 +112,9 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
Set
<
Link
>
links
,
Set
<
ConnectPoint
>
ingressPoints
,
Set
<
ConnectPoint
>
egressPoints
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
resources
(
links
),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
resources
(
links
),
selector
,
treatment
,
constraints
,
priority
);
this
.
links
=
links
;
this
.
ingressPoints
=
ImmutableSet
.
copyOf
(
ingressPoints
);
...
...
@@ -166,6 +170,7 @@ public final class LinkCollectionIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
View file @
c24cde3
...
...
@@ -74,7 +74,8 @@ public final class MplsIntent extends ConnectivityIntent {
Optional
<
MplsLabel
>
egressLabel
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
super
(
appId
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
DEFAULT_INTENT_PRIORITY
);
checkNotNull
(
ingressPoint
);
checkNotNull
(
egressPoint
);
...
...
@@ -144,6 +145,7 @@ public final class MplsIntent extends ConnectivityIntent {
return
MoreObjects
.
toStringHelper
(
getClass
())
.
add
(
"id"
,
id
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
.
add
(
"ingressPoint"
,
ingressPoint
)
...
...
core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
View file @
c24cde3
...
...
@@ -59,7 +59,8 @@ public final class MplsPathIntent extends PathIntent {
public
MplsPathIntent
(
ApplicationId
appId
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
Path
path
,
Optional
<
MplsLabel
>
ingressLabel
,
Optional
<
MplsLabel
>
egressLabel
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
selector
,
treatment
,
path
,
constraints
);
super
(
appId
,
selector
,
treatment
,
path
,
constraints
,
DEFAULT_INTENT_PRIORITY
);
checkNotNull
(
ingressLabel
);
checkNotNull
(
egressLabel
);
...
...
core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
View file @
c24cde3
...
...
@@ -56,7 +56,8 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
TrafficTreatment
treatment
,
Set
<
ConnectPoint
>
ingressPoints
,
ConnectPoint
egressPoint
)
{
this
(
appId
,
selector
,
treatment
,
ingressPoints
,
egressPoint
,
Collections
.
emptyList
());
this
(
appId
,
selector
,
treatment
,
ingressPoints
,
egressPoint
,
Collections
.
emptyList
(),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -70,6 +71,7 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
* @param ingressPoints set of ports from which ingress traffic originates
* @param egressPoint port to which traffic will egress
* @param constraints constraints to apply to the intent
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoints} or
* {@code egressPoint} is null.
* @throws IllegalArgumentException if the size of {@code ingressPoints} is
...
...
@@ -81,8 +83,10 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
TrafficTreatment
treatment
,
Set
<
ConnectPoint
>
ingressPoints
,
ConnectPoint
egressPoint
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
priority
);
checkNotNull
(
ingressPoints
);
checkArgument
(!
ingressPoints
.
isEmpty
(),
"Ingress point set cannot be empty"
);
...
...
@@ -104,6 +108,7 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
* @param ingressPoints set of ports from which ingress traffic originates
* @param egressPoint port to which traffic will egress
* @param constraints constraints to apply to the intent
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoints} or
* {@code egressPoint} is null.
* @throws IllegalArgumentException if the size of {@code ingressPoints} is
...
...
@@ -114,8 +119,10 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
TrafficTreatment
treatment
,
Set
<
ConnectPoint
>
ingressPoints
,
ConnectPoint
egressPoint
,
List
<
Constraint
>
constraints
)
{
this
(
appId
,
null
,
selector
,
treatment
,
ingressPoints
,
egressPoint
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
this
(
appId
,
null
,
selector
,
treatment
,
ingressPoints
,
egressPoint
,
constraints
,
priority
);
}
/**
...
...
@@ -152,6 +159,7 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
View file @
c24cde3
...
...
@@ -54,7 +54,7 @@ public final class OpticalConnectivityIntent extends Intent {
public
OpticalConnectivityIntent
(
ApplicationId
appId
,
Key
key
,
ConnectPoint
src
,
ConnectPoint
dst
)
{
super
(
appId
,
key
,
Collections
.
emptyList
());
super
(
appId
,
key
,
Collections
.
emptyList
()
,
DEFAULT_INTENT_PRIORITY
);
this
.
src
=
src
;
this
.
dst
=
dst
;
}
...
...
core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
View file @
c24cde3
...
...
@@ -48,7 +48,8 @@ public class PathIntent extends ConnectivityIntent {
*/
public
PathIntent
(
ApplicationId
appId
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
Path
path
)
{
this
(
appId
,
selector
,
treatment
,
path
,
Collections
.
emptyList
());
this
(
appId
,
selector
,
treatment
,
path
,
Collections
.
emptyList
(),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -60,11 +61,14 @@ public class PathIntent extends ConnectivityIntent {
* @param treatment treatment
* @param path traversed links
* @param constraints optional list of constraints
* @param priority priority to use for the generated flows
* @throws NullPointerException {@code path} is null
*/
public
PathIntent
(
ApplicationId
appId
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
Path
path
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
resources
(
path
.
links
()),
selector
,
treatment
,
constraints
);
TrafficTreatment
treatment
,
Path
path
,
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
resources
(
path
.
links
()),
selector
,
treatment
,
constraints
,
priority
);
PathIntent
.
validate
(
path
.
links
());
this
.
path
=
path
;
}
...
...
@@ -123,6 +127,7 @@ public class PathIntent extends ConnectivityIntent {
return
MoreObjects
.
toStringHelper
(
getClass
())
.
add
(
"id"
,
id
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
View file @
c24cde3
...
...
@@ -49,6 +49,7 @@ public final class PointToPointIntent extends ConnectivityIntent {
* @param ingressPoint ingress port
* @param egressPoint egress port
* @param constraints optional list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoint} or {@code egressPoints} is null.
*/
public
PointToPointIntent
(
ApplicationId
appId
,
...
...
@@ -57,8 +58,10 @@ public final class PointToPointIntent extends ConnectivityIntent {
TrafficTreatment
treatment
,
ConnectPoint
ingressPoint
,
ConnectPoint
egressPoint
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
priority
);
checkNotNull
(
ingressPoint
);
checkNotNull
(
egressPoint
);
...
...
@@ -85,7 +88,8 @@ public final class PointToPointIntent extends ConnectivityIntent {
ConnectPoint
ingressPoint
,
ConnectPoint
egressPoint
)
{
this
(
appId
,
null
,
selector
,
treatment
,
ingressPoint
,
egressPoint
,
ImmutableList
.
of
(
new
LinkTypeConstraint
(
false
,
Link
.
Type
.
OPTICAL
)));
ImmutableList
.
of
(
new
LinkTypeConstraint
(
false
,
Link
.
Type
.
OPTICAL
)),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -98,14 +102,17 @@ public final class PointToPointIntent extends ConnectivityIntent {
* @param ingressPoint ingress port
* @param egressPoint egress port
* @param constraints optional list of constraints
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoint} or {@code egressPoints} is null.
*/
public
PointToPointIntent
(
ApplicationId
appId
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
ConnectPoint
ingressPoint
,
ConnectPoint
egressPoint
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
null
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
null
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
priority
);
checkNotNull
(
ingressPoint
);
checkNotNull
(
egressPoint
);
...
...
@@ -150,6 +157,7 @@ public final class PointToPointIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
View file @
c24cde3
...
...
@@ -54,7 +54,9 @@ public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
public
SinglePointToMultiPointIntent
(
ApplicationId
appId
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
ConnectPoint
ingressPoint
,
Set
<
ConnectPoint
>
egressPoints
)
{
this
(
appId
,
null
,
selector
,
treatment
,
ingressPoint
,
egressPoints
,
Collections
.
emptyList
());
this
(
appId
,
null
,
selector
,
treatment
,
ingressPoint
,
egressPoints
,
Collections
.
emptyList
(),
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
@@ -67,6 +69,7 @@ public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
* @param ingressPoint port on which traffic will ingress
* @param egressPoints set of ports on which traffic will egress
* @param constraints constraints to apply to the intent
* @param priority priority to use for flows generated by this intent
* @throws NullPointerException if {@code ingressPoint} or
* {@code egressPoints} is null
* @throws IllegalArgumentException if the size of {@code egressPoints} is
...
...
@@ -76,8 +79,10 @@ public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
Key
key
,
TrafficSelector
selector
,
TrafficTreatment
treatment
,
ConnectPoint
ingressPoint
,
Set
<
ConnectPoint
>
egressPoints
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
List
<
Constraint
>
constraints
,
int
priority
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
priority
);
checkNotNull
(
egressPoints
);
checkNotNull
(
ingressPoint
);
checkArgument
(!
egressPoints
.
isEmpty
(),
"Egress point set cannot be empty"
);
...
...
@@ -122,6 +127,7 @@ public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java
View file @
c24cde3
...
...
@@ -107,7 +107,8 @@ public final class TwoWayP2PIntent extends ConnectivityIntent {
TrafficSelector
selector
,
TrafficTreatment
treatment
,
List
<
Constraint
>
constraints
)
{
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
);
super
(
appId
,
key
,
Collections
.
emptyList
(),
selector
,
treatment
,
constraints
,
DEFAULT_INTENT_PRIORITY
);
// TODO: consider whether the case one and two are same is allowed
this
.
one
=
checkNotNull
(
one
);
...
...
@@ -147,6 +148,7 @@ public final class TwoWayP2PIntent extends ConnectivityIntent {
.
add
(
"id"
,
id
())
.
add
(
"key"
,
key
())
.
add
(
"appId"
,
appId
())
.
add
(
"priority"
,
priority
())
.
add
(
"resources"
,
resources
())
.
add
(
"selector"
,
selector
())
.
add
(
"treatment"
,
treatment
())
...
...
core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java
View file @
c24cde3
...
...
@@ -134,7 +134,8 @@ public class LinkCollectionIntentTest extends IntentTest {
links1
,
ingress
,
egress
,
constraints
);
constraints
,
8888
);
final
Set
<
Link
>
createdLinks
=
collectionIntent
.
links
();
assertThat
(
createdLinks
,
hasSize
(
1
));
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/HostToHostIntentCompiler.java
View file @
c24cde3
...
...
@@ -98,7 +98,8 @@ public class HostToHostIntentCompiler
TrafficSelector
selector
=
builder
(
intent
.
selector
())
.
matchEthSrc
(
src
.
mac
()).
matchEthDst
(
dst
.
mac
()).
build
();
return
new
PathIntent
(
intent
.
appId
(),
selector
,
intent
.
treatment
(),
path
,
intent
.
constraints
());
path
,
intent
.
constraints
(),
intent
.
priority
());
}
}
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MultiPointToSinglePointIntentCompiler.java
View file @
c24cde3
...
...
@@ -89,12 +89,14 @@ public class MultiPointToSinglePointIntentCompiler
}
}
Set
<
ConnectPoint
>
egress
=
ImmutableSet
.
of
(
intent
.
egressPoint
());
Intent
result
=
new
LinkCollectionIntent
(
intent
.
appId
(),
intent
.
selector
(),
intent
.
treatment
(),
Sets
.
newHashSet
(
links
.
values
()),
intent
.
ingressPoints
(),
ImmutableSet
.
of
(
intent
.
egressPoint
()),
Collections
.
emptyList
());
Collections
.
emptyList
(),
intent
.
priority
());
return
Arrays
.
asList
(
result
);
}
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PointToPointIntentCompiler.java
View file @
c24cde3
...
...
@@ -93,7 +93,8 @@ public class PointToPointIntentCompiler
PointToPointIntent
intent
)
{
return
new
PathIntent
(
intent
.
appId
(),
intent
.
selector
(),
intent
.
treatment
(),
path
,
intent
.
constraints
());
intent
.
constraints
(),
intent
.
priority
());
}
}
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/SinglePointToMultiPointIntentCompiler.java
View file @
c24cde3
...
...
@@ -70,7 +70,9 @@ public class SinglePointToMultiPointIntentCompiler
intent
.
selector
(),
intent
.
treatment
(),
links
,
ImmutableSet
.
of
(
intent
.
ingressPoint
()),
intent
.
egressPoints
(),
Collections
.
emptyList
());
intent
.
egressPoints
(),
Collections
.
emptyList
(),
intent
.
priority
());
return
Arrays
.
asList
(
result
);
}
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/compiler/TwoWayP2PIntentCompiler.java
View file @
c24cde3
...
...
@@ -51,11 +51,11 @@ public class TwoWayP2PIntentCompiler
new
PointToPointIntent
(
intent
.
appId
(),
intent
.
key
(),
intent
.
selector
(),
intent
.
treatment
(),
intent
.
one
(),
intent
.
two
(),
intent
.
constraints
()),
intent
.
constraints
()
,
Intent
.
DEFAULT_INTENT_PRIORITY
),
new
PointToPointIntent
(
intent
.
appId
(),
intent
.
key
(),
intent
.
selector
(),
intent
.
treatment
(),
intent
.
two
(),
intent
.
one
(),
intent
.
constraints
()));
intent
.
constraints
()
,
Intent
.
DEFAULT_INTENT_PRIORITY
));
}
}
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/installer/LinkCollectionIntentInstaller.java
View file @
c24cde3
...
...
@@ -186,7 +186,7 @@ public class LinkCollectionIntentInstaller
treatment
=
intentTreatment
;
}
FlowRule
rule
=
new
DefaultFlowRule
(
deviceId
,
selector
,
treatment
,
123
,
appId
,
selector
,
treatment
,
intent
.
priority
()
,
appId
,
new
DefaultGroupId
((
short
)
(
intent
.
id
().
fingerprint
()
&
0xffff
)),
0
,
true
);
result
.
add
(
new
FlowRuleOperation
(
rule
,
operation
));
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/installer/MplsPathIntentInstaller.java
View file @
c24cde3
...
...
@@ -280,7 +280,7 @@ public class MplsPathIntentInstaller implements IntentInstaller<MplsPathIntent>
deviceId
,
selector
,
treat
,
123
,
// FIXME 123
intent
.
priority
(),
appId
,
0
,
true
);
...
...
core/net/src/main/java/org/onosproject/net/intent/impl/installer/PathIntentInstaller.java
View file @
c24cde3
...
...
@@ -99,7 +99,7 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> {
.
setOutput
(
link
.
src
().
port
()).
build
();
FlowRule
rule
=
new
DefaultFlowRule
(
link
.
src
().
deviceId
(),
builder
.
build
(),
treatment
,
123
,
//FIXME 123
builder
.
build
(),
treatment
,
intent
.
priority
(),
appId
,
new
DefaultGroupId
((
short
)
(
intent
.
id
().
fingerprint
()
&
0xffff
)),
0
,
true
);
...
...
@@ -127,7 +127,7 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> {
(
links
.
hasNext
()
?
builder
()
:
builder
(
intent
.
treatment
()))
.
setOutput
(
link
.
src
().
port
()).
build
();
FlowRule
rule
=
new
DefaultFlowRule
(
link
.
src
().
deviceId
(),
builder
.
build
(),
treatment
,
123
,
appId
,
builder
.
build
(),
treatment
,
intent
.
priority
()
,
appId
,
new
DefaultGroupId
((
short
)
(
intent
.
id
().
fingerprint
()
&
0xffff
)),
0
,
true
);
rules
.
add
(
new
FlowRuleOperation
(
rule
,
FlowRuleOperation
.
Type
.
REMOVE
));
...
...
core/net/src/test/java/org/onosproject/net/intent/impl/compiler/PointToPointIntentCompilerTest.java
View file @
c24cde3
...
...
@@ -90,7 +90,7 @@ public class PointToPointIntentCompilerTest extends AbstractIntentTest {
return
new
PointToPointIntent
(
APPID
,
selector
,
treatment
,
connectPoint
(
ingressIdString
,
1
),
connectPoint
(
egressIdString
,
1
),
constraints
);
constraints
,
Intent
.
DEFAULT_INTENT_PRIORITY
);
}
/**
...
...
core/net/src/test/java/org/onosproject/net/intent/impl/installer/PathConstraintCalculationTest.java
View file @
c24cde3
...
...
@@ -74,7 +74,7 @@ public class PathConstraintCalculationTest extends AbstractIntentTest {
private
PathIntent
createPathIntent
(
List
<
Link
>
links
,
List
<
Constraint
>
constraints
)
{
int
hops
=
links
.
size
()
-
1
;
return
new
PathIntent
(
APP_ID
,
selector
,
treatment
,
new
DefaultPath
(
PID
,
links
,
hops
),
constraints
);
new
DefaultPath
(
PID
,
links
,
hops
),
constraints
,
333
);
}
/**
...
...
core/net/src/test/java/org/onosproject/net/intent/impl/installer/PathIntentInstallerTest.java
View file @
c24cde3
...
...
@@ -62,7 +62,8 @@ public class PathIntentInstallerTest extends IntentInstallerTest {
installer
.
coreService
=
testCoreService
;
installer
.
intentManager
=
new
MockIntentManager
(
PathIntent
.
class
);
intent
=
new
PathIntent
(
APP_ID
,
selector
,
treatment
,
new
DefaultPath
(
PID
,
links
,
hops
),
ImmutableList
.
of
());
new
DefaultPath
(
PID
,
links
,
hops
),
ImmutableList
.
of
(),
77
);
}
/**
...
...
web/api/src/main/java/org/onosproject/codec/impl/ConnectivityIntentCodec.java
View file @
c24cde3
...
...
@@ -52,6 +52,8 @@ public final class ConnectivityIntentCodec extends JsonCodec<ConnectivityIntent>
result
.
set
(
"treatment"
,
treatmentCodec
.
encode
(
intent
.
treatment
(),
context
));
}
result
.
put
(
"priority"
,
intent
.
priority
());
if
(
intent
.
constraints
()
!=
null
)
{
final
ArrayNode
jsonConstraints
=
result
.
putArray
(
"constraints"
);
...
...
web/api/src/test/java/org/onosproject/codec/impl/IntentCodecTest.java
View file @
c24cde3
...
...
@@ -38,6 +38,7 @@ import org.onosproject.net.flow.TrafficTreatment;
import
org.onosproject.net.intent.Constraint
;
import
org.onosproject.net.intent.HostToHostIntent
;
import
org.onosproject.net.intent.AbstractIntentTest
;
import
org.onosproject.net.intent.Intent
;
import
org.onosproject.net.intent.PointToPointIntent
;
import
org.onosproject.net.intent.constraint.AnnotationConstraint
;
import
org.onosproject.net.intent.constraint.AsymmetricPathConstraint
;
...
...
@@ -147,7 +148,8 @@ public class IntentCodecTest extends AbstractIntentTest {
final
PointToPointIntent
intent
=
new
PointToPointIntent
(
appId
,
selector
,
treatment
,
ingress
,
egress
,
constraints
);
ingress
,
egress
,
constraints
,
Intent
.
DEFAULT_INTENT_PRIORITY
);
final
CodecContext
context
=
new
MockCodecContext
();
final
JsonCodec
<
PointToPointIntent
>
intentCodec
=
...
...
Please
register
or
login
to post a comment