diff --git a/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java b/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
index 5d0e22b6447ebcd88ce8c937d4ea430f1e053ee8..2b16e8bf6c2ef7a3e40e0a796194a6d412e1a602 100644
--- a/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
+++ b/src/test/java/net/floodlightcontroller/core/util/AppCookieTest.java
@@ -41,10 +41,10 @@ public class AppCookieTest {
 
     @Test
     public void testAppCookie(){
-        int user = 0xF123F123; // MSB set
-        int user2 = 0x42;      // MSB cleared
-        U64 expectedCookie11 =  U64.of(0xF4200000F123F123L); // app1, user1
-        U64 expectedCookie21 =  U64.of(0x74300000F123F123L); // app2, user1
+        long user = 0xF123F123F1234L; // MSB set
+        long user2 = 0x42L;      // MSB cleared
+        U64 expectedCookie11 =  U64.of(0xF42F123F123F1234L); // app1, user1
+        U64 expectedCookie21 =  U64.of(0x743F123F123F1234L); // app2, user1
         U64 expectedCookie12 =  U64.of(0xF420000000000042L); // app1, user2
         U64 expectedCookie22 =  U64.of(0x7430000000000042L); // app2, user2
         String name = "FooBar";
diff --git a/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java b/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
index 027d688b32d8415de450c80c2b619cbe3a4afe50..024f4c6644a3de36c5ecc291aa7c2597955b4d5e 100644
--- a/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
+++ b/src/test/java/net/floodlightcontroller/firewall/FirewallTest.java
@@ -98,9 +98,9 @@ public class FirewallTest extends FloodlightTestCase {
     static {
                 AppCookie.registerApp(APP_ID, "Firewall");
         }
-    private static final U64 DENY_BCAST_COOKIE = AppCookie.makeCookie(APP_ID, 0xaaaaaaaa);
-    private static final U64 ALLOW_BCAST_COOKIE = AppCookie.makeCookie(APP_ID, 0x55555555);
-    private static final U64 RULE_MISS_COOKIE = AppCookie.makeCookie(APP_ID, -1);
+    private static final U64 DENY_BCAST_COOKIE = AppCookie.makeCookie(APP_ID, 0xaaaaaaL);
+    private static final U64 ALLOW_BCAST_COOKIE = AppCookie.makeCookie(APP_ID, 0x555555L);
+    private static final U64 RULE_MISS_COOKIE = AppCookie.makeCookie(APP_ID, 0xffffffL);
 
 
     @Override
@@ -684,10 +684,11 @@ public class FirewallTest extends FloodlightTestCase {
     @Test
     public void cookieAddedSuccessfully() {
     	assertEquals("DENY_BCAST_COOKIE app_id is not correct", APP_ID, AppCookie.extractApp(DENY_BCAST_COOKIE));
-    	assertEquals("DENY_BCAST_COOKIE user_id is not correct", 0xaaaaaaaa, AppCookie.extractUser(DENY_BCAST_COOKIE));
+    	
+    	assertEquals("DENY_BCAST_COOKIE user_id is not correct", 0xaaaaaaL, AppCookie.extractUser(DENY_BCAST_COOKIE));
     	assertEquals("ALLOW_BCAST_COOKIE app_id is not correct", APP_ID, AppCookie.extractApp(DENY_BCAST_COOKIE));
-    	assertEquals("ALLOW_BCAST_COOKIE user_id is not correct", 0x55555555, AppCookie.extractUser(ALLOW_BCAST_COOKIE));
+    	assertEquals("ALLOW_BCAST_COOKIE user_id is not correct", 0x555555L, AppCookie.extractUser(ALLOW_BCAST_COOKIE));
       	assertEquals("RULE_MISS_COOKIE app_id is not correct", APP_ID, AppCookie.extractApp(DENY_BCAST_COOKIE));
-      	assertEquals("RULE_MISS_COOKIE user_id is not correct", -1, AppCookie.extractUser(RULE_MISS_COOKIE));
+      	assertEquals("RULE_MISS_COOKIE user_id is not correct", 0xffffffL, AppCookie.extractUser(RULE_MISS_COOKIE));
     }
 }
diff --git a/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java b/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
index d8dbedcd8b22eee6993509ee154772b021db89e9..b4f022e7ce6c3f3978320a65c1af10812ff95931 100644
--- a/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
+++ b/src/test/java/net/floodlightcontroller/forwarding/ForwardingTest.java
@@ -173,6 +173,7 @@ public class ForwardingTest extends FloodlightTestCase {
 		linkService.startUp(fmc);
 		deviceManager.startUp(fmc);
 		forwarding.startUp(fmc);
+		Forwarding.flowSetIdRegistry.seedFlowSetIdForUnitTest(3);
 		entityClassifier.startUp(fmc);
 		verify(topology);
 
@@ -498,7 +499,7 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(action.getPort())
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L << 52))
+				.setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT)))
 				.setPriority(1)
 				.build();
 		OFFlowMod fm2 = fm1.createBuilder().build();
@@ -569,7 +570,7 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(action.getPort())
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L << 52))
+				.setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT)))
 				.setPriority(1)
 				.build();
 		OFFlowMod fm2 = fm1.createBuilder().build();
@@ -637,7 +638,7 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(OFPort.of(3))
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L<< 52))
+				.setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT)))
 				.setPriority(1)
 				.build();
 
@@ -694,7 +695,7 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(OFPort.of(3))
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L<< 52))
+                .setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT)))
 				.setPriority(1)
 				.build();
 
@@ -753,21 +754,20 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(OFPort.of(3))
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L << 52))
+                .setCookie(U64.of(2L << 52).or(U64.of(6 << Forwarding.FLOWSET_SHIFT)))
 				.setXid(anyLong())
 				.build();
 
 		// Record expected packet-outs/flow-mods
 		// We will inject the packet_in 3 times and expect 1 flow mod and
 		// 3 packet outs due to flow mod dampening
-		sw1.write(fm1);
-		expectLastCall().times(1);
+		expect(sw1.write(fm1)).andReturn(true).once();
 		// Update new expected XID
-		sw1.write(packetOut.createBuilder().setXid(anyLong()).build());
-		expectLastCall().times(3);
+		expect(sw1.write(packetOut.createBuilder().setXid(anyLong()).build())).andReturn(true).times(3);
 
 		reset(topology);
-		expect(topology.isBroadcastAllowed(DatapathId.of(anyLong()), OFPort.of(anyShort()))).andReturn(true).anyTimes();
+		expect(topology.isBroadcastAllowed(DatapathId.of(anyLong()), OFPort.of(anyInt()))).andReturn(true).anyTimes();
+		expect(topology.isEdge(DatapathId.of(anyLong()), OFPort.of(anyInt()))).andReturn(true).anyTimes();
 		expect(topology.getClusterId(DatapathId.of(1L))).andReturn(DatapathId.of(1L)).anyTimes();
 		expect(topology.isAttachmentPointPort(DatapathId.of(1L),  OFPort.of(1))).andReturn(true).anyTimes();
 		expect(topology.isAttachmentPointPort(DatapathId.of(1L),  OFPort.of(3))).andReturn(true).anyTimes();
@@ -881,7 +881,7 @@ public class ForwardingTest extends FloodlightTestCase {
 				.setActions(actions)
 				.setOutPort(OFPort.of(3))
 				.setBufferId(OFBufferId.NO_BUFFER)
-				.setCookie(U64.of(2L<< 52))
+                .setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT)))
 				.setPriority(1)
 				.build();
 
@@ -940,7 +940,7 @@ public class ForwardingTest extends FloodlightTestCase {
                 .setActions(actions)
                 .setOutPort(OFPort.of(3))
                 .setBufferId(OFBufferId.NO_BUFFER)
-                .setCookie(U64.of(2L<< 52 | 0xFFffFFffL))
+                .setCookie(U64.of(2L << 52).or(U64.of(4 << Forwarding.FLOWSET_SHIFT).or(U64.of(0xFFffFFL))))
                 .setPriority(1)
                 .build();
 
@@ -995,7 +995,7 @@ public class ForwardingTest extends FloodlightTestCase {
 		
 		Masked<U64> masked_cookie = Masked.of(
 				AppCookie.makeCookie(Forwarding.FORWARDING_APP_ID, (int)4294967295L),
-				AppCookie.getAppFieldMask().or(U64.of(0xffffffffL)));
+				AppCookie.getAppFieldMask().or(U64.of(0xffffffL)));
 		List<OFMessage> msgs_test = new ArrayList<>();
 		msgs_test.add( 	factory.buildFlowDelete()
 						.setCookie(masked_cookie.getValue())
@@ -1015,10 +1015,10 @@ public class ForwardingTest extends FloodlightTestCase {
 		
 		List<Masked<U64>> descriptors = new ArrayList<Masked<U64>>();
 		descriptors.add(Masked.of(
-				U64.of(0x00000000FFffFFffL),
-				U64.of(0x00200000FFffFFffL))); // User mask = 0xffFFffFFL which is forwarding.DECISION_MASK/AppCookie.USER_MASK
+				U64.of(0x0000000000ffFFffL),
+				U64.of(0x0020000000ffFFffL))); // User mask = 0xffFFffFFL which is forwarding.DECISION_MASK/AppCookie.USER_MASK
 		descriptors.add(Masked.of(
-				U64.of(0x00000000FFffFFffL),
+				U64.of(0x0000000000ffFFffL),
 				U64.of(0x0020000000000000L)));
 		
 		expect(sw1.getStatus()).andReturn(IOFSwitch.SwitchStatus.MASTER).anyTimes();
@@ -1036,7 +1036,7 @@ public class ForwardingTest extends FloodlightTestCase {
 		
 		// Cookies
 		Masked<U64> masked_cookie = Masked.of(	AppCookie.makeCookie(Forwarding.FORWARDING_APP_ID, (int)4294967295L),
-												AppCookie.getAppFieldMask().or(U64.of(0xffffffffL)));
+												AppCookie.getAppFieldMask().or(U64.of(0xffffffL)));
 		Masked<U64> masked_cookie2 = Masked.of(	AppCookie.makeCookie(Forwarding.FORWARDING_APP_ID, 0),
 												AppCookie.getAppFieldMask().or(U64.of(0x0L)));
 		// Add cookies to a msg set