support for of1.3 switches
diff --git a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostStore.java b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostStore.java
index 11499eb..42f71df 100644
--- a/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostStore.java
+++ b/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostStore.java
@@ -1,5 +1,16 @@
package org.onlab.onos.net.trivial.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.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.
@@ -46,7 +46,7 @@
* @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);
@@ -62,7 +62,7 @@
descr.vlan(),
descr.location(),
descr.ipAddresses());
- synchronized(this) {
+ synchronized (this) {
hosts.put(hostId, newhost);
locations.put(descr.location(), newhost);
}
@@ -104,7 +104,7 @@
* @return remove even or null if host was not found
*/
HostEvent removeHost(HostId hostId) {
- synchronized(this) {
+ synchronized (this) {
Host host = hosts.remove(hostId);
if (host != null) {
locations.remove((host.location()), host);
@@ -216,4 +216,4 @@
return hostset;
}
-}
\ No newline at end of file
+}
diff --git a/of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java b/of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java
index 65434be..60580db 100644
--- a/of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java
+++ b/of/api/src/main/java/org/onlab/onos/of/controller/DefaultPacketContext.java
@@ -7,6 +7,7 @@
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 @@
@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) {