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
Brian O'Connor
2014-10-03 18:46:39 -0700
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a4cab073beea13eeeca8f1b011b27eb7ba13d750
a4cab073
1 parent
eaec9fe4
Remove Path Intent
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
65 additions
and
8 deletions
cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java
cli/src/main/java/org/onlab/onos/cli/net/RemoveHostToHostIntentCommand.java
cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
core/net/src/main/java/org/onlab/onos/net/intent/impl/PathIntentInstaller.java
cli/src/main/java/org/onlab/onos/cli/net/IntentsListCommand.java
View file @
a4cab07
...
...
@@ -4,6 +4,7 @@ import org.apache.karaf.shell.commands.Command;
import
org.onlab.onos.cli.AbstractShellCommand
;
import
org.onlab.onos.net.intent.Intent
;
import
org.onlab.onos.net.intent.IntentService
;
import
org.onlab.onos.net.intent.IntentState
;
/**
* Lists the inventory of intents and their states.
...
...
@@ -16,7 +17,8 @@ public class IntentsListCommand extends AbstractShellCommand {
protected
void
execute
()
{
IntentService
service
=
get
(
IntentService
.
class
);
for
(
Intent
intent
:
service
.
getIntents
())
{
print
(
"%s"
,
intent
);
IntentState
state
=
service
.
getIntentState
(
intent
.
getId
());
print
(
"%s %s %s"
,
intent
.
getId
(),
state
,
intent
);
}
}
...
...
cli/src/main/java/org/onlab/onos/cli/net/RemoveHostToHostIntentCommand.java
0 → 100644
View file @
a4cab07
package
org
.
onlab
.
onos
.
cli
.
net
;
import
org.apache.karaf.shell.commands.Argument
;
import
org.apache.karaf.shell.commands.Command
;
import
org.onlab.onos.cli.AbstractShellCommand
;
import
org.onlab.onos.net.intent.Intent
;
import
org.onlab.onos.net.intent.IntentId
;
import
org.onlab.onos.net.intent.IntentService
;
/**
* Removes host-to-host connectivity intent.
*/
@Command
(
scope
=
"onos"
,
name
=
"remove-host-intent"
,
description
=
"Removes host-to-host connectivity intent"
)
public
class
RemoveHostToHostIntentCommand
extends
AbstractShellCommand
{
@Argument
(
index
=
0
,
name
=
"id"
,
description
=
"Intent ID"
,
required
=
true
,
multiValued
=
false
)
String
id
=
null
;
@Override
protected
void
execute
()
{
IntentService
service
=
get
(
IntentService
.
class
);
int
radix
=
id
.
startsWith
(
"0x"
)
?
16
:
10
;
if
(
radix
==
16
)
{
id
=
id
.
replaceFirst
(
"0x"
,
""
);
}
IntentId
intentId
=
new
IntentId
(
Long
.
parseLong
(
id
,
radix
));
Intent
intent
=
service
.
getIntent
(
intentId
);
if
(
intent
!=
null
)
{
service
.
withdraw
(
intent
);
}
}
}
cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
View file @
a4cab07
...
...
@@ -64,6 +64,9 @@
</completers>
</command>
<command>
<action
class=
"org.onlab.onos.cli.net.RemoveHostToHostIntentCommand"
/>
</command>
<command>
<action
class=
"org.onlab.onos.cli.net.IntentsListCommand"
/>
</command>
...
...
core/net/src/main/java/org/onlab/onos/net/intent/impl/PathIntentInstaller.java
View file @
a4cab07
package
org
.
onlab
.
onos
.
net
.
intent
.
impl
;
import
static
org
.
onlab
.
onos
.
net
.
flow
.
DefaultTrafficTreatment
.
builder
;
import
java.util.Iterator
;
import
org.apache.felix.scr.annotations.Activate
;
import
org.apache.felix.scr.annotations.Component
;
import
org.apache.felix.scr.annotations.Deactivate
;
...
...
@@ -18,10 +22,6 @@ import org.onlab.onos.net.intent.IntentExtensionService;
import
org.onlab.onos.net.intent.IntentInstaller
;
import
org.onlab.onos.net.intent.PathIntent
;
import
java.util.Iterator
;
import
static
org
.
onlab
.
onos
.
net
.
flow
.
DefaultTrafficTreatment
.
builder
;
/**
* Installer for {@link PathIntent path connectivity intents}.
*/
...
...
@@ -59,8 +59,8 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> {
TrafficTreatment
treatment
=
builder
()
.
setOutput
(
link
.
src
().
port
()).
build
();
FlowRule
rule
=
new
DefaultFlowRule
(
link
.
src
().
deviceId
(),
builder
.
build
(),
treatment
,
123
,
appId
,
600
);
builder
.
build
(),
treatment
,
123
,
appId
,
600
);
flowRuleService
.
applyFlowRules
(
rule
);
prev
=
link
.
dst
();
}
...
...
@@ -69,6 +69,21 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> {
@Override
public
void
uninstall
(
PathIntent
intent
)
{
//TODO
TrafficSelector
.
Builder
builder
=
DefaultTrafficSelector
.
builder
(
intent
.
getTrafficSelector
());
Iterator
<
Link
>
links
=
intent
.
getPath
().
links
().
iterator
();
ConnectPoint
prev
=
links
.
next
().
dst
();
while
(
links
.
hasNext
())
{
builder
.
matchInport
(
prev
.
port
());
Link
link
=
links
.
next
();
TrafficTreatment
treatment
=
builder
()
.
setOutput
(
link
.
src
().
port
()).
build
();
FlowRule
rule
=
new
DefaultFlowRule
(
link
.
src
().
deviceId
(),
builder
.
build
(),
treatment
,
123
,
appId
,
600
);
flowRuleService
.
removeFlowRules
(
rule
);
prev
=
link
.
dst
();
}
}
}
...
...
Please
register
or
login
to post a comment