diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java index 202a19d3a67e2f72a083e4b87de2a1922c572d46..79c0199feae753336072b497e609ae891e13f81b 100644 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Entity.java @@ -98,8 +98,6 @@ public class Entity implements Comparable<Entity> { */ protected Date activeSince; - private int hashCode = 0; - // ************ // Constructors // ************ @@ -157,7 +155,7 @@ public class Entity implements Comparable<Entity> { @JsonIgnore public boolean hasSwitchPort() { - return (switchDPID != null && switchPort != null); + return (switchDPID != null && !switchDPID.equals(DatapathId.NONE) && switchPort != null && !switchPort.equals(OFPort.ZERO)); } public Date getLastSeenTimestamp() { diff --git a/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java b/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java index a4779c1d3af0f30b520a3f195979ffeb4fe1b0d8..a5fc93bad9cafd0f82f38f1cc8203d000d61335e 100644 --- a/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java +++ b/src/test/java/net/floodlightcontroller/core/test/PacketFactory.java @@ -24,6 +24,8 @@ import net.floodlightcontroller.core.IOFSwitch; import org.projectfloodlight.openflow.protocol.OFFactory; import org.projectfloodlight.openflow.protocol.OFPacketIn; import org.projectfloodlight.openflow.protocol.OFPacketInReason; +import org.projectfloodlight.openflow.protocol.OFVersion; +import org.projectfloodlight.openflow.protocol.match.MatchField; import org.projectfloodlight.openflow.types.IpProtocol; import org.projectfloodlight.openflow.types.MacAddress; import org.projectfloodlight.openflow.types.OFPort; @@ -53,12 +55,19 @@ public class PacketFactory { MacAddress hostMac) { byte[] serializedPacket = DhcpDiscoveryRequestEthernet(hostMac).serialize(); OFFactory factory = sw.getOFFactory(); - OFPacketIn packetIn = factory.buildPacketIn() - .setInPort(OFPort.of(1)) + OFPacketIn.Builder packetInBuilder = factory.buildPacketIn(); + if (factory.getVersion() == OFVersion.OF_10) { + packetInBuilder + .setInPort(OFPort.of(1)) .setData(serializedPacket) - .setReason(OFPacketInReason.NO_MATCH) - .build(); - return packetIn; + .setReason(OFPacketInReason.NO_MATCH); + } else { + packetInBuilder + .setMatch(factory.buildMatch().setExact(MatchField.IN_PORT, OFPort.of(1)).build()) + .setData(serializedPacket) + .setReason(OFPacketInReason.NO_MATCH); + } + return packetInBuilder.build(); } /** diff --git a/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java index 780e7eb8166383f1cbcf27e1aa3f5f5bdc5a87bd..a015f5fdc45aa5f9eb24f1cab84a48825578552b 100644 --- a/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java +++ b/src/test/java/net/floodlightcontroller/devicemanager/test/MockDeviceManager.java @@ -90,7 +90,7 @@ public class MockDeviceManager extends DeviceManagerImpl { ipv4Address = null; if (vlan == null) { - v = VlanVid.ofVlan(-1); + v = VlanVid.ofVlan(-1); // TODO @Ryan there is now a ZERO vlan for OF1.3 that should probably be used here. } else { v = VlanVid.ofVlan(vlan); } diff --git a/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java b/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java index 466776fceb897e2391ae8a2916c8160a0c2e9bc2..36ae09daf03f0265415afc82a444fac9ca66767b 100644 --- a/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java +++ b/src/test/java/net/floodlightcontroller/virtualnetwork/VirtualNetworkFilterTest.java @@ -144,15 +144,17 @@ public class VirtualNetworkFilterTest extends FloodlightTestCase { getMockFloodlightProvider().startUp(fmc); vns.startUp(fmc); entityClassifier.startUp(fmc); - + expect(topology.isAttachmentPointPort(DatapathId.of(0), OFPort.ZERO)).andReturn(anyBoolean()).anyTimes(); topology.addListener(deviceService); expectLastCall().times(1); replay(topology); + // Mock switches //fastWilcards mocked as this constant sw1 = EasyMock.createNiceMock(IOFSwitch.class); expect(sw1.getId()).andReturn(DatapathId.of(1L)).anyTimes(); expect(sw1.hasAttribute(IOFSwitch.PROP_SUPPORTS_OFPP_TABLE)).andReturn(true).anyTimes(); + expect(sw1.getOFFactory()).andReturn(OFFactories.getFactory(OFVersion.OF_13)).anyTimes(); replay(sw1); // Mock packets