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
tom
2014-09-11 12:44:22 -0700
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
c7a691a96565ebb13fd0c70988adb5b8f62136dc
c7a691a9
2 parents
13cb485c
b5365ef2
Merge branch 'master' of
ssh://gerrit.onlab.us:29418/onos-next
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
27 deletions
core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java
of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java
core/trivial/src/main/java/org/onlab/onos/net/trivial/host/impl/SimpleHostStore.java
View file @
c7a691a
package
org
.
onlab
.
onos
.
net
.
trivial
.
host
.
impl
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_ADDED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_MOVED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_REMOVED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_UPDATED
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.onlab.onos.net.ConnectPoint
;
import
org.onlab.onos.net.DefaultHost
;
import
org.onlab.onos.net.DeviceId
;
...
...
@@ -15,17 +26,6 @@ import com.google.common.collect.HashMultimap;
import
com.google.common.collect.ImmutableSet
;
import
com.google.common.collect.Multimap
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_REMOVED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_ADDED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_UPDATED
;
import
static
org
.
onlab
.
onos
.
net
.
host
.
HostEvent
.
Type
.
HOST_MOVED
;
/**
* Manages inventory of end-station hosts using trivial in-memory
* implementation.
...
...
@@ -47,7 +47,7 @@ public class SimpleHostStore {
* @return appropriate event or null if no change resulted
*/
HostEvent
createOrUpdateHost
(
ProviderId
providerId
,
HostId
hostId
,
HostDescription
hostDescription
)
{
HostDescription
hostDescription
)
{
Host
host
=
hosts
.
get
(
hostId
);
if
(
host
==
null
)
{
return
createHost
(
providerId
,
hostId
,
hostDescription
);
...
...
@@ -57,12 +57,12 @@ public class SimpleHostStore {
// creates a new host and sends HOST_ADDED
private
HostEvent
createHost
(
ProviderId
providerId
,
HostId
hostId
,
HostDescription
descr
)
{
HostDescription
descr
)
{
DefaultHost
newhost
=
new
DefaultHost
(
providerId
,
hostId
,
descr
.
hwAddress
(),
descr
.
vlan
(),
descr
.
location
(),
descr
.
ipAddresses
());
descr
.
hwAddress
(),
descr
.
vlan
(),
descr
.
location
(),
descr
.
ipAddresses
());
synchronized
(
this
)
{
hosts
.
put
(
hostId
,
newhost
);
locations
.
put
(
descr
.
location
(),
newhost
);
...
...
@@ -72,22 +72,22 @@ public class SimpleHostStore {
// checks for type of update to host, sends appropriate event
private
HostEvent
updateHost
(
ProviderId
providerId
,
Host
host
,
HostDescription
descr
)
{
HostDescription
descr
)
{
DefaultHost
updated
;
HostEvent
event
;
if
(
host
.
location
().
equals
(
descr
.
location
()))
{
updated
=
new
DefaultHost
(
providerId
,
host
.
id
(),
host
.
mac
(),
host
.
vlan
(),
host
.
location
(),
descr
.
ipAddresses
());
host
.
mac
(),
host
.
vlan
(),
host
.
location
(),
descr
.
ipAddresses
());
event
=
new
HostEvent
(
HOST_UPDATED
,
updated
);
}
else
{
updated
=
new
DefaultHost
(
providerId
,
host
.
id
(),
host
.
mac
(),
host
.
vlan
(),
descr
.
location
(),
host
.
ipAddresses
());
host
.
mac
(),
host
.
vlan
(),
descr
.
location
(),
host
.
ipAddresses
());
event
=
new
HostEvent
(
HOST_MOVED
,
updated
);
}
synchronized
(
this
)
{
...
...
of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java
View file @
c7a691a
...
...
@@ -7,6 +7,7 @@ import org.projectfloodlight.openflow.protocol.OFPacketIn;
import
org.projectfloodlight.openflow.protocol.OFPacketOut
;
import
org.projectfloodlight.openflow.protocol.action.OFAction
;
import
org.projectfloodlight.openflow.protocol.action.OFActionOutput
;
import
org.projectfloodlight.openflow.protocol.match.MatchField
;
import
org.projectfloodlight.openflow.types.OFBufferId
;
import
org.projectfloodlight.openflow.types.OFPort
;
...
...
@@ -83,12 +84,18 @@ public final class DefaultPacketContext implements PacketContext {
@Override
public
Integer
inPort
()
{
return
pktin
.
getInPort
().
getPortNumber
();
try
{
return
pktin
.
getInPort
().
getPortNumber
();
}
catch
(
UnsupportedOperationException
e
)
{
return
pktin
.
getMatch
().
get
(
MatchField
.
IN_PORT
).
getPortNumber
();
}
}
@Override
public
byte
[]
unparsed
()
{
return
pktin
.
getData
().
clone
();
}
private
OFActionOutput
buildOutput
(
Integer
port
)
{
...
...
Please
register
or
login
to post a comment